PHPUnit代码覆盖率误报?

时间:2017-12-15 13:24:39

标签: php symfony phpunit code-coverage

我使用代码覆盖率运行phpunit,以便查看我的哪些类的测试较少。

我随意排除了一些文件夹,例如$folder = "c:\temp\MyDirectory\" $bucket = "AWS BUCKET" $folder = "FOLDER PREFIX" aws s3 cp $folder s3://$bucket/$version/ --recursive (Doctrine fixtures)和DataFixtures(Sonata Admin类),这就是结果:

enter image description here

我注意到Admin文件夹全部为红色,但它只包含带有大量标准getter和setter的类。 Entity文件夹也是如此。

如何测试而不忽略

1 个答案:

答案 0 :(得分:0)

PHPUnit提供了一些方法来修改在yor测试中使用注释来跟踪coverage的方式,例如@covers@coversNothing。您还可以使用@codeCoverageIgnore从覆盖范围中排除代码的各个部分。文档中介绍了如何使用它们:https://phpunit.de/manual/current/en/code-coverage-analysis.html

运行测试时,您可以使用command line options修改其中一些设置:

--strict-coverage           Be strict about @covers annotation usage.
--disable-coverage-ignore   Disable annotations for ignoring code coverage.

如果您的问题不是源于限制这些实体的覆盖范围,您应该确定哪些测试使用它们来查看是否实际调用了这些方法。我可以想象你曾经嘲笑过他们,这就是为什么他们没有被掩盖。