使用黑盒测试对Django进行测试覆盖率检测?

3

我们正在使用黑盒(功能集成)测试方法对Django应用程序进行测试,其中客户端通过REST API调用对Django应用程序进行测试。由于客户端在不同的虚拟机上运行,因此我们无法使用典型的coverage.py(我认为是这样)。

有没有办法计算这些黑盒测试的覆盖率?我是否可以以某种方式指示Django在测试覆盖模式下启动和停止,然后报告测试覆盖率?

1个回答

0

功能性集成测试的覆盖范围确实是一个与执行代码行的单元测试覆盖范围不同的抽象层次。您可能更关心真正黑盒测试中使用情况的覆盖率。

但如果您仍然在寻找代码覆盖率(当然,您可能有一些理由想要这样做),那么如果您可以访问服务器来设置测试场景,看起来您应该能够使用coverage.py。您需要实现一种方式以结束django进程,以允许coverage.py编写覆盖报告。

引用自: https://coverage.readthedocs.io/en/coverage-4.3.4/howitworks.html#execution

“在执行结束时,coverage.py将其收集的数据写入数据文件”

这表明Python进程必须自然地完成。手动杀死进程也会导致coverage.py包装器被删除,从而防止编写操作。

一些结束Django的想法:使用sys.exit()停止Django命令

See: https://docs.djangoproject.com/en/1.10/topics/testing/advanced/#integration-with-coverage-py


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接