【发布时间】:2020-02-06 17:15:12
【问题描述】:
我有一份可能存在谎言或歪曲事实的报道。它说我覆盖了我的 Django 模型代码中的一行。我看不到那条线在哪里行使。我可以看到模块被导入,类被导入,但没有被调用/实例化。
因此,覆盖率报告说我覆盖了 A 线。大概这意味着 B 线,某处,正在行使它。我想知道B线在哪里。 有没有办法在我的测试中找到调用 Line A 的一组 Line-B 的(一个或多个)?
似乎这可能是覆盖报告中的注释以某种方式/某处。这绝对是可知的,因为覆盖必须跟踪正在使用的东西。
我没看到。
如果这没有实现,我想建议它。我知道,作为每行执行的完整堆栈跟踪,它可能太复杂了。但是,也许只是检查立即调用框架会是一个好的开始,而且很有帮助。
【问题讨论】:
-
只需在有问题的行之前添加一个
import traceback; traceback.print_stack()并使用-sarg 运行测试。
标签: python unit-testing pytest code-coverage agile