刚开始使用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
刚刚过度兴奋吗?
感谢〜
答案 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
语句)上添加它,它将占用整个块。
答案 1 :(得分:1)
测试备用导入的最简单方法是记住为什么首先有这行代码。评论说,"旧版本。"我猜这意味着旧版本的Django。所以你支持旧版本,但看起来你没有测试它们。
您应该在您支持的所有Django版本上运行测试套件,或者至少在最旧和最新版本上运行。然后,您可以组合每个运行的覆盖结果。如果你这样做,那些线都将被覆盖。