PHPUnit - 来自多个项目文件夹的一个覆盖率报告?

时间:2015-11-21 00:49:41

标签: php unit-testing phpunit code-coverage clover

我的项目结构如下:

project
├── app
│   ├── phpunit.xml
│   ├── src
│   └── tests
│       └── unit
└── modules
    ├── module1
    │   ├── phpunit.xml
    │   ├── src
    │   └── tests
    │       └── unit
    └── module2
        ├── phpunit.xml
        ├── src
        └── tests
            └── unit

所有核心接口/类都在app/src中,所有扩展/实现都在modules/**中。因此,src文件夹包含所有控制器,模型等,相邻的tests/unit文件夹包含这些对象的所有单元测试。

我尝试生成一个coverage.xml报告(更重要的是HTML报告),其中包含来自app/的{​​em>所有测试的覆盖率结果和modules/。有人能建议最好的方法吗?

1 个答案:

答案 0 :(得分:3)

您可以在项目根文件夹中创建一个phpunit.xml

运行PHP Unit时只需指向项目根目录,PHPUnit将运行他可以找到的每个测试文件。

生成的coverage.xml也是如此,它现在包含了每个测试文件的所有结果。

如果您想分开测试运行,请查看PHPunit选项testsuite

示例:

project
├── phpunit.xml
├── app (testsuite app)
└── modules
    ├── module1 (testsuite module2)
    └── module2 (testsuite module1)

插入phpunit.xml

<testsuites>
  <testsuite name="app">
    <directory>app</directory>
  </testsuite>
  <testsuite name="module1">
    <directory>modules/module1</directory>
  </testsuite>
  <testsuite name="module2">
    <directory>modules/module1</directory>
  </testsuite>
</testsuites>

打电话

phpunit --configuration phpunit.xml --testsuite module1