settings.py 文件的覆盖率显示为 100%

coverage showing 100% for settings.py file

我对在 pytest 帮助下生成的覆盖率报告感到困惑。这是我的报道 html 报告。

settings.py 文件显示 100% 已覆盖,不确定情况如何..?

此外,以下登录表单也显示为已覆盖,因此我添加了另一个虚拟表单,即使它显示已覆盖。

我很难理解这一点,尽管我没有为设置添加任何测试,也没有为上面的表格显示 100% 覆盖,因此我不确定我的代码是否经过正确测试与否。

From the doc

Coverage.py is a tool for measuring code coverage of Python programs. It monitors your program, noting which parts of the code have been executed, then analyzes the source to identify code that could have been executed but was not.

在测试期间,Django 必须将 classes 和其他模块加载到内存中,因此程序(您的 class 和设置以及许多其他部分)得到执行。

也就是说,覆盖率不是关于您的测试用例覆盖了多少代码,而是通过任意命令(这里的命令是python manage.py test

恕我直言,您必须为那些 classes 编写单独的测试,如果您要涵盖一些测试用例

Coverage.py只能告诉你一行代码有没有执行。您的表单行定义了 class。这些行在导入文件时执行。 Coverage 无法告诉您其他代码是否使用了 class。与您的设置文件相同。一旦文件被导入,您所有的设置分配都会被执行,正如报道告诉您的那样。报道无法告诉您设置是否被使用。