PHPUnit 在运行第一个测试之前进行设置,并在运行最后一个测试后进行拆卸
我正在尝试使用PHPUnit为php应用程序实现类似Django的测试实用程序。通过Django,我的意思是在运行第一个测试之前从主数据库创建一个单独的测试数据库,并且在运行最后一个测试后将其删除。即使一次运行多个测试用例,也只需创建一次测试数据库。
为此,我采取了以下方法-
我定义了一个自定义测试套件类,以便我可以编写用于在其设置和拆卸方法中创建和删除db的代码,然后使用此类运行测试,如下所示
$ phpunit MyTestSuite
MyTestSuite定义了一个静态方法,我只需使用并向测试套件添加测试,如下所示suite
glob
public static function suite() {
$suite = new MyTestSuite();
foreach (glob('./tests/*Test.php') as $tc) {
require_once $tc;
$suite->addTestSuite(basename($tc, '.php'));
}
return $suite;
}
所有测试用例类都从 的子类扩展而来,该类的设置和拆卸方法负责从 json 夹具文件中加载和清除初始数据。PHPUnit_Framework_TestCase
现在作为没有。的测试正在增加,我一次只需要运行选定的测试。但是由于我已经使用测试套件加载测试,因此无法使用 --filter 选项。这让我觉得这种方法可能不是正确的。
所以我的问题是,在运行第一个测试和运行最后一个测试之后,无论PHPUnit如何找到它们,正确的方法是什么?
PS:我不是在使用PHPUnit_Extensions_Database_TestCase而是我自己创建,填充和删除数据库的实现。