2014-11-25 60 views
0

我使用py.testcoverage一起生成覆盖率信息,以便我可以看到我的代码中有多少我写过unittests。蟒蛇unittesting - 如何获得更明确的覆盖率信息

coverage run --source=package_directory/sources -m py.test package_directory/tests 
coverage report -m --include=package_directory 
coverage html --include=package_directory 

覆盖范围产生很好的和精细和实际工作,我倒是希望它做的事(当我做出一个新的单元测试,以测试特定的功能和运行之前提到的命令,该功能由“失踪”去按照应该“运行”)。不过,事实上,我还没有触及到脚本中的报道,这让我觉得我的单元测试并非完全孤立,而是某处正在蔓延到其他功能中。我想使用coverage来查看发生了什么。

所以,基本问题归结为: 如果覆盖率报告中的语句(函数)被标记为“运行”,是否有方法可以从运行(调用)的位置看到?

回答

0

还没有一种方法可以将覆盖的行追溯回执行它们的测试。请记住,简单地导入模块将执行模块中的顶级语句(通常为defclass定义)。

+0

那么,这种类型的功能在作品中? 它甚至有可能吗?考虑到python如何在抛出异常时追踪所有的函数? 除了我以外,还能让任何人受益吗? – Reinis 2014-11-26 11:39:54

+0

这是一个常见的要求。很多人都想要它。挑战是双重的:收集所有的数据(现在为每一行,而不是运行/不运行,我们需要存储一个测试名称列表),然后,如何呈现这些信息? – 2014-11-26 12:29:24