其他答案在這裏是正確的。你不能使用xml配置來做到這一點,但你可以做的是在php中使用相同類型的配置。
這當然不是最漂亮的事情,但它應該給你你需要的功能。
您提供的XML配置
<testsuites>
<testsuite name="Library">
<directory>library</directory>
</testsuite>
<testsuite name="XXX_Form">
<file>library/XXX/FormTest.php</file>
<directory>library/XXX/Form</directory>
</testsuite>
</testsuites>
可以想像,假設你的目錄下的「庫」包含3個文件:
library
XXX
FormTest.php
Unit
unittest1.php
unittest2.php
,並且每個文件包含了完美的命名慣例1次測試,例如:FormTest包含testForm()
對於配置我們將創建一個包含所有內容的配置:
<?php
include_once "library/XXX/FormTest.php";
include_once "library/Unit/unittest1.php";
include_once "library/Unit/unittest2.php";
然後,我們將創建由PHPUnit的命名約定的類。你可以將其命名爲任何你想要的,我們永遠不會真正使用它......
class LibraryConfigTest extends PHPUnit_Framework_TestCase {
每個「測試套件」將僅僅是運行要測試的方法。無論你想要什麼,都要命名這些方法,再一次,我們永遠不會使用它。 Phpunit將負責運行。一定要將他們評論成組,儘管你知道如何執行。
/**
* All Tests in Library
* @group Library
**/
public function testLibrary() {
UnitTest1::testUnit1();
UnitTest2::testUnit2();
FormTest::testForm();
}
/**
* All Form tests in library/XXX
* @group XXX_Form
**/
public function testForm() {
FormTest::testForm();
}
}
?>
現在爲了獲得您想要的功能,您只需針對所需的組運行「config」。
phpunit --group XXX_Form library_config.php
phpunit --group Library library_config.php
正如我所說的,這是醜陋的,當然不是好代碼,因爲這將需要定期的維護, 但它會給你你正在尋找的功能。
希望Bergmann會在他的下一輪中增加這個功能,儘管看起來似乎不太可能,因爲他看起來幾乎是ignoring it。
X-Ref:[在PHPUnit中默認運行單個測試套件](https://stackoverflow.com/q/37820193/367456) – hakre 2017-08-02 21:45:20