一组工具,用于在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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?