【问题标题】:PHPUnit - exclude some directories from code coverage in command linePHPUnit - 从命令行中的代码覆盖范围中排除一些目录
【发布时间】:2012-02-23 11:58:33
【问题描述】:

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

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

我还发现 phpunit 命令有 --filter 选项,但我找不到任何示例如何使用它来排除完整目录(或其中几个)。

【问题讨论】:

    标签: unit-testing phpunit code-coverage xdebug


    【解决方案1】:

    --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>
    

    【讨论】:

    • 无论好坏,phpunit.xml 正在成为处理测试分组的唯一真正方法。
    • 这个答案是关于如何包含目录(白名单),但你将如何排除目录?相反(黑名单)不起作用。
    • 绝对路径和相对路径都适用于 指令。如果这更符合您的风格,还有一个 可用。
    猜你喜欢
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2016-03-21
    相关资源
    最近更新 更多