我们正在使用黑盒(功能集成)测试方法测试Django应用程序,其中客户端使用REST API调用来执行对Django应用程序的测试。客户端运行在不同的VM上,所以我们不能使用典型的coverage.py (我认为)。
有没有办法计算这些黑盒测试的覆盖率?我能以某种方式指示Django在测试覆盖模式下启动和停止,然后报告测试覆盖吗?
发布于 2017-03-17 00:53:24
功能集成测试的覆盖率实际上是一个不同于单元测试覆盖率的抽象层,单元测试覆盖率涵盖了执行的代码行。您可能更关心真正的黑盒测试中的用例覆盖率。
但是,如果您无论如何都在寻找代码覆盖率(当然,您可能想要这样做是有原因的),那么看起来您应该能够使用coverage.py,只要您能够访问服务器来设置测试场景。您将需要实现一种结束django流程的方法,以允许coverage.py编写覆盖率报告。
来自:https://coverage.readthedocs.io/en/coverage-4.3.4/howitworks.html#execution的
在执行结束时,coverage.py会将其收集的数据写入数据文件
这表明python进程必须自然完成。手动终止该进程也会取出阻止写入的coverage.py包装器。
结束django的一些想法:stop django command using sys.exit()
请参阅:https://docs.djangoproject.com/en/1.10/topics/testing/advanced/#integration-with-coverage-py
https://stackoverflow.com/questions/21522103
复制相似问题