【发布时间】: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