标题基本上概括了这个问题,但简单地说,我正在为多个团队维护的单回购代码库实现覆盖率要求。
禁忌:
- 我们所有的实用程序都从根目录运行,包括我们的测试
- 运行我们的测试将运行所有模块的所有测试,除非明确指定要运行哪些服务
- 运行测试覆盖率目前仅受.coveragerc文件中省略的文件的限制,该文件基本上如下所示(例如,我们希望在
src/service_c/*
上运行覆盖率:
[run]
omit =
*__init__.py*,
*/tests/*
src/service_a/*,
src/service_b/*,
我已经为我们对service_c的覆盖范围检查添加了fail_under标准,但如果我们在某个时候决定service_a也应该有fail_unders标准,那么我希望它与service_c中的fail_under标准无关。
在不必将所有这些服务拆开的情况下,有没有一种方法可以用coverage.py实现这一点?
Coverage.py没有提供这一功能,但我写了一个简单的工具来更灵活地衡量这样的目标:覆盖率目标。它会做你想做的事,将来可能会成为coverage.py功能。