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


热门话题
java Spring引导jar文件可重用(本地maven存储库)   没有标题的java Webpush通知不会出现   本地类的优先级。java文件还是从java包中导入的类?   java Sparks enableHiveSupport   java通过AJAX调用我的WebService通常会导致服务器故障   java添加到链表末尾   java提供了对Spring数据Mongo存储库的限制   仅显示字符的程序显示“?”在爪哇   java Oracle 10.2.0.4.0和OJDBC1212。1.0.0.jar | |无法获取JDBC连接;嵌套的异常是ja│ │ ORA01882:未找到时区区域   使用Netflix Eureka的java JSONException   java我们如何为akka非类型处理器编写单元测试   java 安卓在触摸和移动时获取按钮文本   java将字符串转换为int数组bluej