2016-09-20 104 views
0

我在PHPUnit 5.5.4和XDebug 2.4.1中使用PHP 5.6.24,我的代码覆盖率为0.83%。 但是,在PHPUnit 4.7.7和XDebug 2.3.3中使用PHP 5.6.0之前,代码覆盖率超过了84%。升级到PHPUnit 5.5.4后代码覆盖率报告不正确

我发现从PHP 5.5.x开始,你需要有一个配置了白名单的phpunit.xml。这对我来说是新的,所以我添加了以下文件:

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit> 
    <filter> 
     <whitelist processUncoveredFilesFromWhitelist="true"> 
      <directory suffix=".php">./</directory> 
      <file></file> 
     </whitelist> 
    </filter> 
    <logging> 
     <log type="coverage-html" target="../results/report" lowUpperBound="35" highLowerBound="70"/> 
    </logging> 
    <testsuites> 
     <testsuite name="DTS"> 
      <directory>./</directory> 
     </testsuite> 
    </testsuites> 
</phpunit> 

单元测试仍然有效。当我通过命令行运行它们时,我仍然可以看到所有测试都成功执行,但这只是代码覆盖率报告的结果。

回答

0

我正在运行5.5.4,这是最新的稳定版本,5.6是beta版本。我向我的记录添加了日志,看看它是否会起作用,并且确实如此。它生成了一个HTML报告,该报告位于报告目录中,正确显示了我的百分比。这是我的phpunit.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit colors="true" bootstrap="vendor/autoload.php"> 
    <testsuite name="Full Suite"> 
     <directory>tests/</directory> 
    </testsuite> 
    <filter> 
     <whitelist processUncoveredFilesFromWhitelist="true"> 
      <directory suffix=".php">src</directory> 
     </whitelist> 
    </filter> 
    <logging> 
     <log type="coverage-html" target="report"/> 
    </logging> 
</phpunit> 

所以它可能是测试版,但你至少可以看到我的XML文件,并知道它的工作原理与5.5.4。祝你好运!

+0

感谢您的意见。我用你的文件作为基础(修改我的路径),但我仍然得到相同的结果。 (我也使用最新的稳定的PHPUnit 5.5.4,从未尝试过测试版) – Tornado

+1

这太糟糕了,希望它是一些小东西......(对不起,我误解了你原来的帖子,看到PHP 5.6并认为它是PHPUnit 5.6,因此beta混淆)...我也运行PHP 5.6。我只能建议设置一些简单的测试用例,看看它是否运行,然后检查你的环境。祝你好运! – Katie

+0

phpunit是否有关于文件夹/测试结构的任何特定要求?我很怀疑,因为它找到并执行所有测试用例? 什么是看到的是,我的所有3793测试成功执行,但只有13/822测试方法有代码覆盖率。 – Tornado

相关问题