Python 单元测试 : how to satisfy nose coverage for importing packages

标签 python django nose coverage.py python-coverage

对于给定的 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/

相关文章:

Python Pandas - df.loc - 添加附加条件不起作用

python - 虚拟字段的南迁移

python - 使用 PASSWORD_HASHERS 为 unittest 用户创建一个简单的密码

python - 初学者 : Examining Queryset results

python - 为什么 Nose 测试无法找到 sys.path 中的元素?

python - 从列表中删除重复的连续元组?

python - 黑白图像上的子图像匹配

python - 如何防止nose检查matplotlib等导入模块?

python - 使用 pypy 运行 Nose 测试

python - pdf 到 csv 文件的文本内容转换 - 如何?