PHPUnit白名单与测试套件代码覆盖率

时间:2016-12-15 11:11:26

标签: php phpunit

我目前有一个phpunit.xml文件,如下所示:

<testsuites>
    <testsuite name="Application Test Suite">
        <directory suffix="Test.php">tests</directory>
    </testsuite>
</testsuites>
<filter>
    <whitelist processUncoveredFilesFromWhitelist="true">
        <directory suffix=".php">src</directory>
    </whitelist>
</filter>

我有些问题:

我是否正确地假设在我的<testsuite> <directory suffix="Test.php">tests检查该目录中与Test * .php相对应的文件?

我目前在 src 文件夹中有一个 .php 文件,其中包含一些HTML。 PHPUnit选择此文件并在运行单元测试时将其全部内容转储为输出。我想这是因为我使用processUncoveredFilesFromWhitelist设置了白名单。

我想这会查看所有带有.php扩展名的文件,并检查它们是否已经过测试。

我可以简单地将白名单更改为我的测试目录,这解决了问题,但我想这会使我的CodeCoverage报告无法查看哪些类尚未经过测试?

当我还想在项目中包含我想要包含在某个地方的.php文件时,我该怎么办?我是否在phpunit.xml文件中写了一些内容来忽略这些文件?

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容排除该文件(以及任何其他不可测试的文件):

<testsuites>
    <testsuite name="Application Test Suite">
        <directory suffix="Test.php">tests</directory>
    </testsuite>
</testsuites>
<filter>
    <whitelist processUncoveredFilesFromWhitelist="true">
        <directory suffix=".php">src</directory>
        <exclude>
            <file>/path/to/your_html_file.php</file>
        </exclude>
    </whitelist>
</filter>

在回答第一个问题时,Test.php是后缀,因此它会查找* Test.php。