【问题标题】:phpUnit code coverage on interfaces shows no success接口上的 phpUnit 代码覆盖率显示没有成功
【发布时间】:2013-05-05 09:01:34
【问题描述】:

目前我正在做一个白盒测试,以便测试父类和所有接口。这涵盖了所有内容,因此我添加了文档注释:

/**
 * @covers \Pat\Environment\PHP\Autoloader\Psr0<extended>
 */
public function testWhitebox() {}

phpUnit 运行成功,但界面没有出现在coverage.xml 文件中。不管是否排除。

<?xml version="1.0" encoding="UTF-8" ?>
<phpunit bootstrap="bootstrap.php">
    <filter>
        <blacklist>
            <file>*Interface.php</file>
        </blacklist>
    </filter>

    <logging>
        <log type="coverage-clover" target="./coverage.xml"/>
    </logging>
</phpunit>

phpStorm IDE 一直将其视为文件,因此它丢失了。如果没有这个问题,它将是 100% 的代码覆盖率。

它对 phpStorm 开放并为 IntelliJ IDEA 修复。

http://youtrack.jetbrains.com/issue/WI-14785

任何已知的解决方法?

【问题讨论】:

  • 如何覆盖甚至不存在的东西? Coverage 是一种代码覆盖率。而且您(根据定义)没有要在接口中测试的任何实现。
  • 好吧,它算作一个文件,并且在 XML 中丢失了。然后取决于 phpStorm 或 PHPUnit。
  • 我不确定我是否正确理解了这个问题。接口不包含可执行代码。你想如何测试它们?应该涵盖什么?
  • 另外,请在问题中添加调用 PHPUnit 的命令行以添加更多上下文。
  • 我认为您误解了目录旁边的摘要。说 66% 的文件被代码覆盖是完全正确的(这表明有些文件根本无法被覆盖)。如您所见,它表示 100% 的行。在您的情况下,该值很重要。不是文件百分比。

标签: php unit-testing phpunit phpstorm


【解决方案1】:

如何解决?

如果这符合 PHPStorm 中的错误/缺陷/新功能请求,您可以在其issue tracker for PHPStorm (and other products) 中将其报告为问题。

然后他们的人员会注意解决这个问题。


如果你不想走那条路,你可以忽略代码覆盖率统计中的文件,因为你在计算百分比时不需要考虑它。

【讨论】:

  • 谢谢。它在 IntelliJ 中已解决,但在 phpStorm 中未解决。我看到了力的讨论,但这不起作用(请参阅上面的新信息)。仍在计算每个文件。
猜你喜欢
  • 2012-01-18
  • 1970-01-01
  • 2012-05-04
  • 2012-11-21
  • 2022-11-30
  • 2019-06-20
  • 2012-08-04
  • 1970-01-01
  • 2018-05-29
相关资源
最近更新 更多