django - 为什么 python 覆盖说错过了行?

标签 django coverage.py python-coverage

我正在尝试使用 Django 的覆盖率,但我似乎得到了不正确的结果。我的应用程序被命名为“stats”,我有这个测试:

class ListSchoolsTest(TestCase):
    def test_initial_list(self):
        self.client.login(username='skeezy', password='skeezy')
        resp = self.client.get("/stats/list_schools/")
        self.assertEqual(resp.status_code, 200)

在命令行上,我运行:
coverage run --source="." manage.py test stats

并且测试通过了。我所有的观点目前都在 stats/views.py

但是当我运行“覆盖率报告”时,我得到了这一行:
Name                 Stmts   Miss  Cover
----------------------------------------
<snip>
stats/views            110    110     0%

知道我在(不)在做什么会导致覆盖报告 stats/views.py 中遗漏的所有行,即使它必须被击中才能通过测试? (就像一个腰带和吊带,我在我的视野中放了一个打印声明,它肯定会受到打击。)

最佳答案

也许你已经 pip 安装了没有 -e 的应用程序旗帜?然后这些模块不是从您的项目目录中导入的,而是它们安装到的路径,并且覆盖认为这些是不同的文件。

关于django - 为什么 python 覆盖说错过了行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18564935/

相关文章:

django - 如何在 Docker 中创建多容器 Web 应用程序

python - 如何确保我的大型 Python 项目的良好测试覆盖率

python - 什么时候我的 Python 测试套件文件覆盖率不是 100%?

python - 使 pytest 仅在完整测试套件运行时才需要代码覆盖

python - Django 对 URL 的覆盖率测试为 0%,为什么?

python - 在django中实现分页和搜索过滤器

mysql - Django 注释 output_field=DecimalField 忽略 max_digits 和 decimal_places

python - DJANGO_SETTINGS_MODULE 没有导入我的模型类

python - 什么是代码覆盖率的部分命中?

python - 无法让覆盖范围在 PyDev 中工作, "File has no statistics"