获取将使用PHPUNIT配置文件执行的测试列表

获取将使用PHPUNIT配置文件执行的测试列表,php,testing,phpunit,Php,Testing,Phpunit,我有一个简单的问题: 用命令 phpunit -c|--configuration <file> phpunit-c |——配置 可以指定包含多个phpunit配置的文件,例如(但不限于): 路径/到/目录/一 路径/to/directory/two 这将导致要执行的测试列表 虽然我不完全了解phpunit的内部实现,但我想以某种方式检索这个“列表”。您可以使用testsuite配置phpunit.xml,并运行phpunit--configuration path/to/p

我有一个简单的问题:

用命令

phpunit -c|--configuration <file>
phpunit-c |——配置
可以指定包含多个phpunit配置的文件,例如(但不限于):


路径/到/目录/一
路径/to/directory/two
这将导致要执行的测试列表


虽然我不完全了解phpunit的内部实现,但我想以某种方式检索这个“列表”。

您可以使用testsuite配置phpunit.xml,并运行
phpunit--configuration path/to/phpunit.xml--testsuite

  • 如果在phpunit.xml
    --配置的偶数文件夹中运行
    phpunit
    path/to/phpunit.xml
    不是必需的,您可以只运行
    phpunit
    --测试套件
  • 如果要运行所有测试,则运行phpunit,而不使用
    --testsuite
    ;及
  • 如果您想只运行文件,您可以在testsuite或
    运行phpunit path/to/Test.php
注意:phpunit无法找到带有sufix“*Test.php”的文件


有关更多信息,请参阅:

回答我自己的问题:

如果查看PhpUnit的内部结构,那么解析器组件与命令调用的运行程序组件是强耦合的

这种情况实际上不可能重用xml解析器,因为它迫使您要么复制粘贴代码块,要么重新实现解析逻辑


长话短说的PhpUnit xml解析逻辑是不可重用的。

您可以通过父级设置将所有测试标记为已跳过,从而按执行顺序获取所有测试的列表:

公共功能设置()
{
$this->markTestSkipped($this->toString());
}

我添加了更多信息。由于PHPUnit 6.4,应该有一个参数
——列出测试(请参阅)。还有其他有趣的论点(参见)。
 <testsuites>
        <testsuite name="unit">
            <directory>path/to/directory/one</directory>
             <directory>path/to/directory/two</directory>
        </testsuite>
  </testsuites>