PHPUnit:仅针对一个测试套件进行过滤

aut*_*tix 8 configuration phpunit filter test-suite

在PHPUnit中,可以在不同的测试套件中组织测试:

<phpunit bootstrap="Bootstrap.php">
    <testsuites>
        <testsuite name="zf2sandbox">
            <directory>./AlbumTest</directory>
        </testsuite>
    </testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)

此外,您可以定义过滤器

<filter>
    <whitelist>
        <directory suffix=".php">/var/www/sandbox/zf2sandbox/module/Album/src/Album/</directory>
    </whitelist>
</filter>
Run Code Online (Sandbox Code Playgroud)

现在我想结合这两个胎儿.不允许将filter标记放入a testsuite(过滤器只是被忽略).

<phpunit bootstrap="Bootstrap.php">
    <testsuites>
        <testsuite name="zf2sandbox">
            <directory>./AlbumTest</directory>
            <filter>
                <whitelist>
                    <directory suffix=".php">/var/www/sandbox/zf2sandbox/module/Album/src/Album/</directory>
                </whitelist>
            </filter>
        </testsuite>
    </testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以为每个过滤器定义过滤器(whilists,blacklists等)testsuite?

Bra*_*sen 1

您是否尝试添加标签filter内部testsuite,因为在您的示例中它位于testsuites标签中。IE:

<phpunit bootstrap="Bootstrap.php">
    <testsuites>
        <testsuite name="zf2sandbox">
            <directory>./AlbumTest</directory>
            <filter>
                <whitelist>
                    <directory suffix=".php">/var/www/sandbox/zf2sandbox/module/Album/src/Album/</directory>
                </whitelist>
            </filter>
        </testsuite>
    </testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)