Coverage.py 建议我需要测试 ImportError - 我该怎么做?
Coverage.py suggests I need to test for an ImportError -- how do I do that?
刚开始使用 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
是不是太兴奋了?
谢谢~
有些简单的代码行有时真的没有意义花时间为它们编写特定的测试。可能这段代码就属于这一类。
因此,您可以通过在您希望从报道中排除的任何直播旁边添加 # pragma nocover
评论来指示报道忽略它。请注意,将此添加到引入块的行(例如 if
语句),它将排除整个块。
测试备用导入的最简单方法是记住为什么您首先拥有该行代码。评论说,"older versions." 我猜这意味着旧版本的 Django。所以你支持旧版本,但看起来你没有用它们进行测试。
您应该 运行 您的测试套件适用于您支持的所有 Django 版本,或者至少是最旧和最新版本。然后,您可以合并每个 运行 的覆盖率结果。如果这样做,这些行将全部被覆盖。
刚开始使用 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
是不是太兴奋了?
谢谢~
有些简单的代码行有时真的没有意义花时间为它们编写特定的测试。可能这段代码就属于这一类。
因此,您可以通过在您希望从报道中排除的任何直播旁边添加 # pragma nocover
评论来指示报道忽略它。请注意,将此添加到引入块的行(例如 if
语句),它将排除整个块。
测试备用导入的最简单方法是记住为什么您首先拥有该行代码。评论说,"older versions." 我猜这意味着旧版本的 Django。所以你支持旧版本,但看起来你没有用它们进行测试。
您应该 运行 您的测试套件适用于您支持的所有 Django 版本,或者至少是最旧和最新版本。然后,您可以合并每个 运行 的覆盖率结果。如果这样做,这些行将全部被覆盖。