使用前缀的PHPUnit测试文件


PHPUnit test files using prefix

我需要测试一系列子文件夹中的所有类。但是,在完成大型重构之前,我不想测试这些子文件夹中的其他文件。

我想测试的文件都是从class.开始的,例如class.apis.phpclass.something.php

因此,为了运行我的测试,我有以下PHPUnit的氯化配置:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="true" backupStaticAttributes="true" colors="true"
    convertErrorsToExceptions="true"
    convertNoticesToExceptions="true" convertWarningsToExceptions="true"
    processIsolation="false"
    stopOnFailure="false" syntaxCheck="true" verbose="true"
    strict="true">
    <php>
        <includePath>../</includePath>
    </php>
    <testsuites>
        <testsuite name="MSBO Test Suite">
            <directory>PHPUnit</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist addUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">../classes/</directory>
            <directory suffix=".php">../modules/</directory>
            <exclude>
                <directory>../classes/external/</directory>
            </exclude>
        </whitelist>
    </filter>
</phpunit>

但我找不到任何关于如何在白名单中添加前缀的信息。有什么想法吗?

我们使用不同的扩展,而不是前缀,所以我们有:

<directory suffix=".class">lib/UTIL</directory>

你可能可以在文件名过滤器中使用通配符,尽管我还没有尝试过。

<file>lib/UTIL/AJAX*.class</file>

相当古老的线程,但只是为了补充以前的响应。此功能是为PHPUnit 6.5.10添加的。您可以在以下网址查看相关更新:

  • https://github.com/sebastianbergmann/phpunit/issues/3218
  • https://github.com/sebastianbergmann/phpunit/commit/2d53bd5ae8ec6f81bb3be9d397f1f4cfac69ff97

也可在phpunit >v7.2上使用(在v7.5.17上测试并运行良好)。不确定添加了哪个特定版本。