我有一个非常大的python项目,它有一个非常大的测试套件。最近我们决定量化测试覆盖的质量。
我正在寻找一种自动生成测试覆盖率报告的工具。理想情况下,我希望有一个有吸引力的,易于阅读的报告,但如果能让它快速起作用,我会满足于不太有吸引力的报道。
我尝试过Nose,这还不够好:它与distribute / setuptools的命名空间包功能不兼容。不幸的是,鼻子覆盖对我们来说永远不会有用,因为我们充分利用了这个功能这真是一种耻辱,因为Nose似乎在Hudson中工作得非常好(主要是)
作为替代方案,我听说有一种方法可以在Eclipse中进行Python覆盖率分析,但我并没有完全锁定完美的技术。
欢迎任何建议!
仅供参考我们在Windows XP 32bit上使用Python 2.4.4
答案 0 :(得分:4)
您是否尝试过使用coverage.py?它是“鼻子覆盖”的基础,但如果你需要,可以在鼻子外面完美地运行。
如果您使用(假设)python run_my_tests.py
运行测试,则可以使用coverage run run_my_tests.py
衡量覆盖率,然后使用coverage html
获取HTML报告。
根据你的描述,我不确定你的鼻子有什么问题,特别是它是鼻子问题还是coverage.py问题。提供更多细节,我相信我们可以完成它们。
答案 1 :(得分:1)
Ned已经提到了他优秀的coverage.py模块。
如果您遇到的问题与鼻子有关,您可能需要考虑使用其他测试运行器。我使用了py.test以及pytest_coverage插件,可以生成覆盖率统计信息。它还有一个pytest_nose插件,可以帮助您迁移。
但是,我并不完全明白你所遇到的问题是什么。您能否详细说明您提到的“distribute / setuptools'命名空间包功能”?我很想知道问题所在。