对于给定的 python 文件,其顶部有以下行:
import traceback
import datetime
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.conf import settings
如何编写单元测试,使 nose 不显示这些行的“缺失”?
最佳答案
我认为如果它显示代码覆盖率中缺少这些行,则意味着该模块从未被使用或导入。只要您成功导入这些模块,这些行就会显示在报告中,并且不需要额外的测试来验证导入那些经过良好测试的 django 模块的能力。只要您有一个测试该模块中某些内容的测试,就应该没问题。例如:
import traceback
import datetime
# from django.contrib.contenttypes import generic
# from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.conf import settings
def foo(a):
return a + 5
def test_foo():
assert foo(5) == 10
当使用 --with-coverage
选项针对这个特定文件运行时,将导致 100% 的覆盖率。我注释掉了 django.contrib
包,因为我没有使用 django-nose
并且没有为此示例进行适当的设置,但这无关紧要。
关于Python 单元测试 : how to satisfy nose coverage for importing packages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727049/