从Python的角度来看,如何确定涵盖函数或方法的单元测试,或者通常由测试运行器确定套件中的测试所遇到的任何代码行?考虑到覆盖工具知道被击中的特定代码,但是我找不到任何方法来获取这些信息(我使用py.test
作为我的测试运行员{coverage
,这些信息应该在手边,这似乎是合理的。 1}}和pytest-cov
模块)。
我发现的一种方法是在代码中添加pdb.set_trace
调用,但如果我能找到一种不需要修改测试代码的更优雅的方法,那将非常有用。
答案 0 :(得分:3)
Coverage.py还没有提供此功能,但是我们正在开放一些机会,我们正在开展各种创意:https://github.com/nedbat/coveragepy/issues/170
要阅读此问题的旧历史记录,请查看the old ticket(在BitBucket跟踪器中)
答案 1 :(得分:3)
Smother是一个围绕coverage.py的包装器实用程序,它为测试套件中的每个测试单独测量代码覆盖率。其主要功能包括:
它支持py.test和nose。
答案 2 :(得分:1)
我不知道此代码在当前生态系统中是否仍然有效(特别是当前的覆盖版本和nose / nose 2插件API),但figleaf
包中的figleaf-sections插件提供了此功能特征
http://darcs.idyll.org/~t/projects/figleaf/doc/
如果我记得,这是一个很好的概念证明,我确信它很有用,但我认为有一些粗糙的边缘,如果有人接受了这个想法并且真的让它顺利运作,我会很喜欢它! / p>