我想从测试套件中排除或包含某些测试。我希望通过注释/组对此进行一些控制,而不是在phpunit.xml
我尝试过这样的事情,但它似乎忽略了<groups>
和/或<include>
<testsuites>
<testsuite name="Unit">
<directory>Unit</directory>
</testsuite>
<testsuite name="IntegrationFirstRound">
<directory>Integration/</directory>
<include><!-- I want to ONLY include this group -->
<group>first-round</group>
</include>
</testsuite>
<testsuite name="IntegrationOther">
<directory>Integration/</directory>
<exclude><!-- I want to EXCLUDE this group, run all others -->
<group>first-round</group>
</exclude>
</testsuite>
</testsuites>
我不想将测试移动到不同的文件夹只是为了适应这种情况,我不想从CLI多次调用phpunit,我希望我能通过xml配置实现所需的结果。
答案 0 :(得分:4)
好的,看看应该是你看的第一个DOC
https://phpunit.de/manual/current/en/appendixes.configuration.html
您需要一个groups
元素,其中包含group
。所以你在哪里
<exclude><!-- I want to EXCLUDE this group, run all others -->
<group>first-round</group>
</exclude>
你应该
<groups>
<exclude><!-- I want to EXCLUDE this group, run all others -->
<group>first-round</group>
</exclude>
</groups>
它并没有真正说明它是否应该进入<testsuite>
,而我从未使用它,但我相信如果你查看文档,你应该找到一些例子。
答案 1 :(得分:0)
就我而言,我分组为data
<?php
namespace Tests\Unit\Artefact;
use Tests\TestCase;
/**
* @group data
*/
class DataMovieTest extends TestCase
{
}
然后像这样从终端运行phpunit
phpunit --exclude data
答案 2 :(得分:0)
在 an issue with groups in phpunit repo 中有一个讨论,其中 Sebastian Bergmann 明确提供了一个示例 phpunit.xml 文件。
请在下面找到有关如何放置组和包含(排除)元素的示例摘录:
<phpunit>
<testsuite name="My Test Suite">
<file>Test.php</file>
</testsuite>
<groups>
<include>
<group>one</group>
</include>
</groups>
</phpunit>