python - 使用 try- except-finally 和上下文管理器增加覆盖范围

标签 python unit-testing code-coverage

这是我的程序中的流程

277: try:
278:    with open(r"c:\afile.txt", "w") as aFile:
...:        pass # write data, other exceptions/errors can occur here that have to be handled by the caller
329: except IOError as ex:
...:    print ex
332: finally:
333:    if os.path.exists(r"c:\afile.txt"):
334:        shutil.copy(r"c:\afile.txt", r"c:\dest.txt")

我已经覆盖了除了第 278 行到第 333 行之外的所有路径

  • 我的心情很正常。
  • 当使用所述文件名调用 open 时,我对 __builtin__.open 进行了 stub 处理以引发 IOError

但是我如何从 278 转到 333。这可能吗?


附加信息: - 使用coverage.py 3.4 (我们无法升级到 3.5)

最佳答案

Daan,这可能代表了coverage.py 中的一个错误。根据您的描述,我假设您正在使用分支覆盖范围,并且覆盖范围.py 声称 278-333 丢失。如果您可以将其缩减为可重现的测试用例,我将为它创建一个票证。

关于python - 使用 try- except-finally 和上下文管理器增加覆盖范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122506/

相关文章:

playframework-2.0 - 使用 SCCT 计算代码覆盖率时,配置文件不在 Play Framework 2.0 类路径中

java - 三叶草3.1.7不支持Java 7 Diamond

visual-studio-2010 - 如何让 Visual Studio 显示代码覆盖率为 0% 的 dll 的代码覆盖率结果?

python - 将 Pandas DataFrame 保存到 Django 模型

python - 使用 Python 3 从文本文件创建嵌套字典

python - 如何在 Cython 中构建元组?

c# - 线程安全的单元测试?

java - Mockito when() 需要一个必须是 'method call on a mock' 错误的参数

python - 使用 nltk 训练我自己的分类器后,如何将其加载到 textblob 中?

android - 带有 Fabric Crashlytics 的 Robolectric 3