一组工具,用于在CI管道中将代码覆盖率作为合并条件进行验证。
coveragecheck的Python项目详细描述
覆盖率检查
coveragecheck是一个工具,它报告项目覆盖率报告中未覆盖(或排除)的diff代码行。 其目的是在连续集成管道中调用此工具,以强制合并代码具有完整语句 新闻报道。在
该工具兼容统一diff格式的任何diff,以及一个格式为JSON字典的覆盖率报告,类似于 coverage.py的输出。示例用法如下所示。在
安装
最简单的安装方法是使用pip:
pip install coveragecheck
也可以通过克隆此存储库并将覆盖率检查.py在您的道路上:
^{pr2}$持续集成管道
有关连续集成管道的示例脚本,请查看中为此存储库配置的GitHub操作
.github/workflows/coverage_check.yml
。这些步骤应该转化为任何连续集成应用程序/自动化服务器。在
示例
示例目录包含一个简单的Python库和测试文件,允许我们测试coveragecheck
:
向example/lib.py
添加一个新类,不包含任何测试覆盖:
class Bar(object):
def __init__(self, name):
self.name = name
def getName(self):
return self.name
使用coverage.py生成覆盖率报告:
$ cd example
$ coverage run -m unittest discover
$ coverage json
调用coveragecheck
以显示丢失的覆盖范围:
$ git diff | coveragecheck -r coverage.json
Failure
Files missing coverage:
example/lib.py:
16 self.name = name
19 return self.name
将覆盖范围添加到test.py
:
from lib import Foo, Bar
...
class TestBarCoverage(unittest.TestCase):
def test_bar(self):
print( 'TestBarCoverage: test_bar')
bar = Bar("bar")
assert bar.getName() == "bar"
如上图所示重新生成覆盖率报告,然后调用coveragecheck
:
$ git diff | coveragecheck.py -r coverage.json
Success!
贡献
欢迎投稿和发稿!在
要开始,只需使用以下命令安装所需的Python依赖项:
pip install -r requirements.txt
- 项目
标签: