PHPUnit:如何使用通配符包含用于测试的文件

时间:2014-03-09 02:55:50

标签: php phpunit

这似乎是一件非常简单的事情 - 使用通配符识别用phpunit进行测试的文件。例如,这是我的测试目录:

/test/model/v11_CountryTest.php
/test/model/v11_IndustryTest.php
/test/model/v11_UserTest.php
/test/model/v12_OrgTest.php

/test/model/factory/v11_CountryTest.php
/test/model/factory/v12_OrgTest.php

正如你所看到的,我有一个包括一些工厂的模型。我的一些模型已更新为Ver 12(即v12_OrgTest.php)。我希望PHPUnit能够运行所有v12测试,但不能运行v11测试。有没有办法做到这一点?

我在命令行上尝试过简单的phpunit v12*.php,但这不起作用。另外,我尝试在phpunit.xml文件(在特定测试套件下)的<file>标记中指定通配符,但没有成功。

根据手册,看起来我可以使用<groups>标签,但这意味着要编辑每个测试文件。如果需要,我会这样做,但想知道是否有更简单的方法。

2 个答案:

答案 0 :(得分:2)

好的,事实证明你可以将整个类标记为属于一个组,并带有以下代码注释:

/**
 * @group GroupName
 */

鉴于它非常简单,几乎没有必要在文件选择中使用通配符。谢谢塞巴斯蒂安!

答案 1 :(得分:0)

In the documentation您可以找到所有命令行选项。其中一个选项是“filter”,您可以在其中传递一个字符串,PHPUnit将使用该字符串来过滤要执行的测试,只选择与您的字符串匹配的测试用例。如果你使用版本为“v12”的命名空间,我认为你可以过滤所需的测试,因为PHPUnit使用方法的全名(带有命名空间和类名)