Coverage.py建议我需要测试一个ImportError - 我该怎么做?

时间:2015-05-29 02:46:13

标签: python django coverage.py

刚开始使用coverage.py,我正在进行测试狂欢!

在我的python文件的顶部,我有以下内容(用于说明不同版本的Django):

try: # newer versions
    from django.contrib.contenttypes.fields import GenericForeignKey 
except ImportError: # older versions
    from django.contrib.contenttypes.generic import GenericForeignKey 

当我运行coverage.py时,它突出显示最后两行(except ImportError)并将其标记为需要测试。

如何在我的单元测试中测试?我需要吗?它似乎不应该因为我不测试我所有的其他进口产品。 coverage.py刚刚过度兴奋吗?

感谢〜

2 个答案:

答案 0 :(得分:1)

有一些简单的代码行,有时真的没有意义花时间和编写特定的测试。可能这段代码属于这一类。

因此,您可以通过在要覆盖范围之外的任何直播旁边添加Option Explicit Sub OpenFile() Dim xlFile As Variant ChDir "C:\temp" '// Showing Excel Dialog xlFile = Application.GetOpenFilename("All Excel Files (*.xls*)," & _ "*.xls*", 1, "Select Excel File", "Open", False) '// If Cancel then exit If TypeName(xlFile) = "Boolean" Then Exit Sub End If '// Open selected file Workbooks.Open xlFile End Sub 评论来指示覆盖范围忽略它。请注意,在引入块的行(例如# pragma nocover语句)上添加它,它将占用整个块。

参考:Excluding code from coverage

答案 1 :(得分:1)

测试备用导入的最简单方法是记住为什么首先有这行代码。评论说,"旧版本。"我猜这意味着旧版本的Django。所以你支持旧版本,但看起来你没有测试它们。

您应该在您支持的所有Django版本上运行测试套件,或者至少在最旧和最新版本上运行。然后,您可以组合每个运行的覆盖结果。如果你这样做,那些线都将被覆盖。