Python Coverage 说 A 行被覆盖,需要知道从哪里覆盖

标签 python unit-testing pytest code-coverage agile

我有一份可能撒谎或歪曲的报道报告。它说我覆盖了 Django 模型代码中的一行。我看不到这条线正在哪里行使。我可以看到模块已导入,类已导入,但没有看到它正在被调用/实例化。

因此,覆盖报告显示我已覆盖 A 线。据推测,这意味着 B 线在某个地方正在行使它。我想知道B线在哪里有没有办法在我的测试中找到调用 Line A 的一组 Line-B(一个或多个)?

这似乎可能是报道报告中的注释。这绝对是可知的,因为覆盖范围必须跟踪正在使用的东西。

我没看到。

如果这没有实现,我想建议它。我知道,作为每行执行的完整堆栈跟踪,它可能太复杂了。但是,也许只是检查立即调用框架将是一个好的开始,并且很有帮助。

最佳答案

coverage.py 5.0 中的新功能是 dynamic contexts它可以告诉您每行代码运行了什么测试。它不会告诉您该线路的直接调用者,但这是一个开始。

关于Python Coverage 说 A 行被覆盖,需要知道从哪里覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60100319/

相关文章:

unit-testing - 如何将单元测试添加到 Leiningen 项目?

java - 如何对上传到服务器的java代码运行测试

python - 暂停 PyTest 并等待用户输入

python - 几个测试的pytest参数化执行顺序

python - 泊松模拟未按预期工作?

python - 从 Pandas 数据框中选择特定的索引、列对

python - 将列替换为特定字符的计数

python - 如何判断牛顿法是否失败

c++ - 如何在 C++ 中通过链接器进行模拟测试

pytest - 执行完所有测试后如何运行特定代码?