PHPUnit - 在命令行中从代码覆盖中排除某些目录

时间:2012-02-23 11:58:34

标签: unit-testing phpunit code-coverage xdebug

我正在开发基于Yii框架的项目,我们有许多测试,我们以编程方式添加到测试套件中,所以我们没有使用phpunit.xml文件来配置测试。

问题是,如何从代码覆盖率报告中排除某些目录(例如Yii文件夹)。我发现的大多数解决方案都基于xml文件中的黑名单/白名单配置选项。

我还发现phpunit命令有--filter选项,但我找不到任何可以用来排除完整目录(或少数几个)的例子。

1 个答案:

答案 0 :(得分:11)

--filter用于过滤当前运行的phpunit中执行的测试。

您可以使用它,所以说"只执行--filter MyTestClass--filter testStuffThatBrokeAndIOnlyWantToRunThatOneSingleTest但与代码覆盖无关。

--filter与xml配置中的<filter>无关,即使它们具有相同的名称:)


从代码覆盖率报告中排除文件的唯一方法是使用白名单/黑名单。

如果您在自己的source文件夹中使用白名单,则应在大多数情况下执行此任务。

白名单文档:

http://phpunit.de/manual/current/en/phpunit-book.html#appendixes.configuration.blacklist-whitelist

示例:

  <filter>
    <whitelist addUncoveredFilesFromWhitelist="true">
      <directory suffix=".php">src</directory>
    </whitelist>
  </filter>