【问题标题】:How can I find check the coverage of changed code?如何检查更改代码的覆盖率?
【发布时间】:2019-11-12 21:06:23
【问题描述】:

我有一个运行多个作业的 Jenkins 作业,其中一些是针对我们平台不同部分的单元测试。 其中一项工作是 phpunitTest,它基本上确保所有测试都通过并使用 Codecept 生成代码覆盖率。

我现在的问题是,如何确保新推送的代码被单元测试覆盖?

目前我正在使用这个命令来运行覆盖: codeception/codeception run unit --coverage-html --quiet

如果推送的代码没有经过单元测试,我希望看到测试失败。

【问题讨论】:

    标签: bash jenkins phpunit code-coverage git-diff


    【解决方案1】:

    除非 Codecept 对此有特殊(和不寻常的)工具,否则基本上有两种方法:实现 100% 的覆盖率并在每次运行时验证这一点,或者强制向 100% 的覆盖率迈进。由于大多数项目甚至没有达到 100% 的覆盖率(这与覆盖所有基础完全不同;例如,请参阅 SQLite 了解为什么 100% 只是开始)我将假设后者。在这种情况下你能做的就是

    1. 强制在每次 CI 运行时满足最低覆盖百分比,并
    2. 强制保证覆盖率永远不会降低。

    通过这些简单的权宜之计,您自然会确保代码覆盖率随着添加的每一段代码而增加。

    这并不能保证每段新代码都被 100% 覆盖;为此,您必须解析覆盖率检查器结果并查看是否有任何新文件或更改的文件被提及为缺少覆盖率。

    【讨论】:

    • 有趣的点,即使我没有得到明确的答案。但是,这仍然向我证实,唯一的方法是解析输出并与旧值进行比较。
    猜你喜欢
    • 2014-05-18
    • 1970-01-01
    • 2013-05-04
    • 2012-06-30
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    相关资源
    最近更新 更多