这里的其他答案是正确的。您无法使用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将负责运行。不过,请务必将它们注释成组,以便您知道如何执行。
public function testLibrary() {
UnitTest1::testUnit1();
UnitTest2::testUnit2();
FormTest::testForm();
}
public function testForm() {
FormTest::testForm();
}
}
?>
现在,为了获得所需的功能,只需对所需的组运行“ config”。
phpunit --group XXX_Form library_config.php
phpunit --group Library library_config.php
就像我说的那样,这很丑陋,当然也不是很好的代码,因为它将需要不断的维护,但是它将为您提供所需的功能。
希望Bergmann在他的下一轮会增加这个功能,尽管似乎不太可能忽略了它。