2010-08-27 69 views
2

我有我的PHPUnit安装和覆盖率报告工作正常,没有白名单过滤器。但是,一旦我添加了一个,报告似乎只是部分生成,就好像PHPUnit意外退出一样。我没有收到任何错误或警告。PHPUnit代码覆盖不与配置

我configuratoon看起来是这样的:

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit bootstrap="./bootstrap.php" 
     colors="true"> 
    <testsuites> 
     <testsuite name="..."> 
      <testsuite name="..."> 
       <directory>./path/to/suite</directory> 
      </testsuite> 
      <testsuite name="..."> 
       <directory>./path/to/suite2</directory> 
      </testsuite> 
      <testsuite name="..."> 
       <directory>./path/to/suite3</directory> 
      </testsuite> 
     </testsuite> 
    </testsuites> 

    <filter> 
     <whitelist> 
      <directory suffix=".php">../path/to/files</directory> 
     </whitelist> 
    </filter> 

    <logging> 
     <log type="coverage-html" target="log/" charset="UTF-8" yui="true" /> 
    </logging> 
</phpunit> 

上有什么可以去错了你知道吗?

回答

1

原来我在白名单上的文件中有一些脚本暂停程序代码。

+0

是的,在PHP代码中使用'DIE()'或'EXIT;'将会停止PHPunit覆盖报告。 – 2011-01-27 16:27:09

1

对不起挖掘旧的,但我googled phpunit代码覆盖不起作用,这一个出现。

我让代码覆盖率只是运行它的过程(认为xdebug是用于它),它一段时间以来很好。

然后当我创建一个新的测试时,它突然停止工作,运行的代码被标记为未覆盖。

我在PHPUnit创建的测试类:PHPUnit的-skelgen --test

那一个创建覆盖注释,如:MyClass的@covers ::的someMethod

删除他们解决了这个问题对我来说,现在的XDebug使用再次突然有100%的覆盖率。

关于报道的一句话;只要调用一种方法就可以在报告中覆盖它,但大多数情况下不能被视为覆盖。用空值和无效值调用它会覆盖它。

+0

感谢您的分享 – 2012-09-21 21:29:50