6

我有一个非常大的 python 项目和一个非常大的测试套件。最近我们决定量化我们的测试覆盖的质量。

我正在寻找一种工具来自动生成测试覆盖率报告。理想情况下,我希望有有吸引力的、易于阅读的报告,但如果我能让它快速运行,我会接受不太吸引人的报告。

我试过 Nose,但不够好:它与分发 / setuptools 的命名空间包功能不兼容。不幸的是,鼻子覆盖永远不会对我们有用,因为我们充分利用了这个功能。这真是太可惜了,因为鼻子在哈德逊似乎工作得很好(大部分)

作为替代方案,我听说有一种方法可以在 Eclipse 中进行 Python 覆盖分析,但我还没有完全锁定完美的技术。

欢迎任何建议!

仅供参考,我们在 Windows XP 32 位上使用 Python 2.4.4

4

2 回答 2

4

您是否尝试过使用coverage.py?它是“鼻子覆盖”的基础,但如果您需要,它可以在鼻子之外完美运行。

如果您使用 (假设地) 运行测试python run_my_tests.py,那么您可以使用 测量覆盖率coverage run run_my_tests.py,然后使用 获取 HTML 报告coverage html

根据您的描述,我不确定您的鼻子有什么问题,尤其是鼻子问题还是coverage.py 问题。提供更多细节,我相信我们可以解决这些问题。

于 2010-06-25T10:44:16.360 回答
1

Ned 已经提到了他出色的 coverage.py 模块。

如果您遇到的问题是特定于鼻子的问题,您可能需要考虑使用另一个测试运行器。我使用了py.testpytest_coverage插件,它可以让你生成覆盖率统计信息。它还有一个pytest_nose插件来帮助你迁移。

但是,我不明白你所面临的问题是什么。您能否详细说明您提到的“分发/设置工具的命名空间包功能”?我很想知道问题是什么。

于 2010-06-25T11:04:01.523 回答