一组工具,用于在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 freemarker多模板加载程序路径   在java插件中从控制台获取输入   java在包中创建继承类   网页抓取Java Jsoup网页抓取   java在线程内创建一个对象,而true条件具有相同的引用   java如何根据空格数拆分字符串   java新的安卓 studio更新中的配置文件“app”是什么?   java在将ArrayList写入/读取到文件时出现奇怪的问题   java Reg替换文本块第一次出现+最后一次出现   java当我单击任何RecyclerView列表项时,如何在MainActivity的EditText中显示特定的单击项?   JAVA XML删除节点仅删除第一个外观   java如何在数组中查找特定值   java SVG/矢量图形对象布尔运算(并集、交集、减法)   java在Android中创建线程需要多长时间   尝试从JBOSS联系Oracle LDAP服务器时发生java连接重置异常   java基于参数获取特定的实现实例   使用java就地修改文件内容   java MonetaryException:未加载MonetaryAmountsSingletonSpi   java接受用户的不同输入并使其触发完全相同的代码段的最短方法是什么   Spring 3.2.8应用程序中未找到java HTTP 404错误