带有DBUnit的PHPUnit:初始装置设置失败
我已经为我的一个模块创建了一个数据库测试类。当我尝试运行一个测试用例时,初始的fixture没有设置——测试数据库中的所有表都是空的。下面是我的getDataSet()方法: 我发现getDataSet()方法被调用,因为当我在其中创建语法错误时,测试执行失败。但当我在initial.xml文件中创建错误时,什么也没有发生。似乎根本没有解析initial.xml文件带有DBUnit的PHPUnit:初始装置设置失败,php,unit-testing,phpunit,dbunit,Php,Unit Testing,Phpunit,Dbunit,我已经为我的一个模块创建了一个数据库测试类。当我尝试运行一个测试用例时,初始的fixture没有设置——测试数据库中的所有表都是空的。下面是我的getDataSet()方法: 我发现getDataSet()方法被调用,因为当我在其中创建语法错误时,测试执行失败。但当我在initial.xml文件中创建错误时,什么也没有发生。似乎根本没有解析initial.xml文件 文件的路径应该是正确的,但是我注意到当我输入一个无效的路径时,同样没有发生任何事情。显然,方法createFlatXMLDataS
文件的路径应该是正确的,但是我注意到当我输入一个无效的路径时,同样没有发生任何事情。显然,方法createFlatXMLDataSet()在出现错误时不会引发任何异常。所以现在我不知道它为什么不起作用:(解决了:结果是没有调用getDataSet(),因为我已经重写了setUp(),并且没有意识到应该从重写的方法体调用parent::setUp()
因此,结论是:如果您要覆盖方法setUp(),则必须始终调用parent::setUp()。谢谢!为此,我已经用头撞墙好几个小时了!!
/**
* @return PHPUnit_Extensions_Database_DataSet_IDataSet
*/
public function getDataSet()
{
return $this->createFlatXMLDataSet(dirname(__FILE__).'/dataSets/initial.xml');
}