【问题标题】:why codecoverage want me to cover define variable?为什么 codecoverage 要我覆盖定义变量?
【发布时间】:2020-11-14 16:28:26
【问题描述】:

晚上好,我正在为 symfony 创建一个包。我为我的方法创建了单元测试,并生成了一个测试覆盖率报告(通过 travis ci 然后发送到 codecov.io)。我还有一部分代码没有被覆盖,即常量(define):

codecov.io

我尝试添加代码覆盖忽略指令或添加 getter 并测试这些 getter 的返回,但结果始终相同。我不明白为什么报告要求我测试原则上不必测试的常量变量。提前感谢您的帮助

【问题讨论】:

    标签: symfony phpunit code-coverage


    【解决方案1】:

    @codeCoverageIgnore 可用于类、方法和单个语句。如果要排除块,请使用@codeCoverageIgnoreStart@codeCoverageIgnoreEnd

    // @codeCoverageIgnoreStart
    define('A', 'B');
    define('C', 'D');
    // @codeCoverageIgnoreEnd
    

    或者,将每个语句标记为已忽略:

    define('A', 'B'); // @codeCoverageIgnore
    define('C', 'D'); // @codeCoverageIgnore
    

    代码覆盖率报告不知道您是否必须测试某些内容。它只是报告在运行测试时执行了哪些代码。你应该把它作为找到你错过的地方的指南。仅仅因为某些行是红色的并不意味着您必须对其进行测试。仅仅因为线条是绿色的,并不意味着您已经涵盖了所有相关案例。

    【讨论】:

    • 谢谢定义('A', 'B'); // codeCoverageIgnore 是正确的方法。我试过 // codeCoverageIgnoreStart 但它没有用。是的,封面只是一个指南,但由于封面的结果考虑了这个计算,这会扭曲情况......再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2010-09-23
    • 2017-03-05
    • 2017-06-28
    相关资源
    最近更新 更多