如何防止 Django 中的 coverage.py 在运行之间重置覆盖率?
How to prevent coverage.py in Django from resetting coverage between runs?
搜索了文档,但找不到执行此操作的方法。我一直在使用以下命令 运行 设置我的测试套件:
coverage manage.py run test tests
这将 运行 'tests' 文件夹中的所有测试。在此之后,为了测量覆盖率,我使用报告命令:
coverage report -m
问题是此测量值在 运行 秒之间完全重置。所以假设我 运行 我在套件中的所有测试并达到 85% 的覆盖率。如果我然后 run/re-run 一个人 testcase/testmethod,覆盖率测量将被重置,因此报告将只显示最后一个 运行.
的特定 testcase/testmethod 的覆盖率
根据我的用法,获得最新覆盖率测量的唯一方法是重新运行所有测试用例(这需要很长时间)。有没有办法让覆盖率测量存储以前的结果,并且 只修改随后 运行 测试 的结果的覆盖率?
来自the docs:
By default, each run of your program starts with an empty data set. If you need to run your program multiple times to get complete data (for example, because you need to supply disjoint options), you can accumulate data across runs with the -a flag on the run command.
-a
也可以是--append
.
搜索了文档,但找不到执行此操作的方法。我一直在使用以下命令 运行 设置我的测试套件:
coverage manage.py run test tests
这将 运行 'tests' 文件夹中的所有测试。在此之后,为了测量覆盖率,我使用报告命令:
coverage report -m
问题是此测量值在 运行 秒之间完全重置。所以假设我 运行 我在套件中的所有测试并达到 85% 的覆盖率。如果我然后 run/re-run 一个人 testcase/testmethod,覆盖率测量将被重置,因此报告将只显示最后一个 运行.
的特定 testcase/testmethod 的覆盖率根据我的用法,获得最新覆盖率测量的唯一方法是重新运行所有测试用例(这需要很长时间)。有没有办法让覆盖率测量存储以前的结果,并且 只修改随后 运行 测试 的结果的覆盖率?
来自the docs:
By default, each run of your program starts with an empty data set. If you need to run your program multiple times to get complete data (for example, because you need to supply disjoint options), you can accumulate data across runs with the -a flag on the run command.
-a
也可以是--append
.