覆盖率:哪个测试触及了这行代码?

16

到目前为止,Python二进制代码的覆盖范围仅限于:某行是否被执行过。

是否有一种方法可以获取每个Python代码行的测试列表以便执行该行?

我阅读了coverage文档,但未找到解决方案。

2个回答

12

使用coverage.py可以通过动态上下文实现此目的。

显然,我需要让这个更容易找到。有什么可以帮助的吗?


2
“Context”对我来说不是很直观,"dynamic context"也是一样,所以我和OP一样会有同样的困难。在CLI中添加一个开关“what-test-ran-this-line”。这是许多人想要的功能,因此请确保它非常容易实现。 - ShpielMeister
3
我已经在两个位置添加了文档:https://github.com/nedbat/coveragepy/commit/22fe2eb167a18dda8fd3e14cbf9166a1c7331fb9 - Ned Batchelder
6
如果回答展示一下如何使用库来执行问题中所述的操作,会更好些。 - Heretic Monkey

1

虽然有关如何获取覆盖某行代码的测试列表的文档,对于

这个功能有点被名称为动态上下文所混淆。此外,当前的文档写得不太容易理解。

这就是为什么我查看了使用此功能的不同项目的配置文件,并写了一篇关于此主题的博客文章

我希望这是一个很好的入门!

接下来,让我们尝试使文档更容易发现并且更容易为每个人所理解。


1
你的想法如何?https://github.com/nedbat/coveragepy/commit/22fe2eb167a18dda8fd3e14cbf9166a1c7331fb9 - Ned Batchelder
太好了!谢谢,尼德! - Jürgen Gmach
注意:pytest-cov使用coverage.py的动态上下文功能。 - Shiplu Mokaddim

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