如何从命令行运行多个PHPUnit测试套件?

时间:2016-07-08 22:53:46

标签: phpunit

如果您在phpunit.xml中配置了多个测试套件,那么如何从命令行运行多个测试套件而不是所有测试套件?

phpunit.xml

<?xml version="1.0" encoding="utf-8"?>
<phpunit
    backupGlobals="false"
    backupStaticAttributes="false"
    colors="true"
    convertErrorsToExceptions="true"
    convertNoticesToExceptions="true"
    convertWarningsToExceptions="true"
    processIsolation="false"
    stopOnFailure="true"
    syntaxCheck="true"
    bootstrap="tests/bootstrap.php">
        <testsuites>
            <testsuite name="Unit">
                <directory suffix="Test.php">tests/unit</directory>
            </testsuite>
            <testsuite name="Integration">
                <directory suffix="Test.php">tests/integration</directory>
            </testsuite>
            <testsuite name="Acceptance">
                <directory suffix="Test.php">tests/acceptance</directory>
            </testsuite>
        </testsuites>
        <logging>
            <log type="coverage-html" target="build/coverage"/>
            <log type="testdox-html" target="build/requirements.html"/>
        </logging>
        <filter>
            <whitelist>
                <directory suffix=".php">src</directory>
            </whitelist>
        </filter>
</phpunit>

例如

phpunit --testsuite Unit|Integration但不是Acceptance

1 个答案:

答案 0 :(得分:9)

来自评论中的@emfi:自PHPUnit 6.0以来,已修复此问题以允许通过--testsuite suite1,suite2以逗号分隔套件列表。

来源:https://github.com/sebastianbergmann/phpunit/commit/80754cf323fe96003a2567f5e57404fddecff3bf

原始答案/ PHPUnit 6.0之前

它没有像你期望的那样工作。

--testsuite <pattern> Filter which testsuite to run.

<pattern>不是实际模式。

您可以选择要运行的测试套件,但不能使用模式来过滤要运行的模式。

更好的描述是--testsuite <name> Which testsuite to run.

问题报告https://github.com/sebastianbergmann/phpunit/issues/2273