PHPUnit配置扩展以运行特定的测试套件



我想为特定的测试套件运行PHPUnit测试运行器扩展,但我没有找到实现这一目标的方法。

我知道可以使用参数配置扩展,但是,似乎没有办法检索当前的测试套件。

我们也可以采取更广泛的观点,可能想要检索传递给PHPUnit命令行测试运行器的选项。

我的phpunit.xml文件配置如下(为示例目的而简化):

<phpunit>
<testsuites>
<testsuite name="unit">
<directory>ci/unit</directory>
</testsuite>
<testsuite name="unit-with-extension">
<directory>ci/unit-with-extension</directory>
</testsuite>
</testsuites>
<extensions>
<extension class="ExtensionsCustomExtension"/>
</extensions>
</phpunit>

自定义扩展:

declare(strict_types=1);
namespace ExtensionsCustomExtension;
use PHPUnitRunnerAfterLastTestHook;
use PHPUnitRunnerBeforeFirstTestHook;
class CustomExtension implements AfterLastTestHook, BeforeFirstTestHook
{
public function executeBeforeFirstTest(): void
{
...
}
public function executeAfterLastTest(): void
{
...
}
}
最后,使用以下命令运行测试套件:
phpunit --unit-with-extension

谢谢你的帮助!

嗯,有一个配置文件是有原因的。

两个。(或三个,以此类推)。

老实说,最直接的方法是用适当的配置文件调用测试运行器,然后您就可以拥有您正在寻找的所有变体。

介绍一个Makefile或composer脚本,这样您就可以对如何调用不同的配置进行记录,并使它们触手可及。

如果你想扩展,Phpunit是纯php,你可以摆弄超全局变量和你自己的引导-也许在运行器扩展级别-但这并没有使任何事情更容易,也没有可移植性或你的测试更好(很有可能,请不要冒犯)。