【问题标题】:PHPUnit with DBUnit: initial fixture fails to set up带有 DBUnit 的 PHPUnit:初始夹具无法设置
【发布时间】:2013-06-19 12:35:44
【问题描述】:

我为我的一个模块创建了一个数据库测试类。当我尝试运行测试用例时,未设置初始夹具 - 测试数据库中的所有表都是空的。这是我的 getDataSet() 方法:

    /**
 * @return PHPUnit_Extensions_Database_DataSet_IDataSet
 */
public function getDataSet()
{
    return $this->createFlatXMLDataSet(dirname(__FILE__).'/dataSets/initial.xml');
}

我发现调用了 getDataSet() 方法,因为当我在其中创建语法错误时,测试执行失败。但是当我在文件 initial.xml 中创建错误时,什么也没有发生。似乎根本没有解析文件 initial.xml!

文件的路径应该没问题,但我注意到,当我再次输入无效路径时,什么也没有发生。显然,当出现问题时,方法 createFlatXMLDataSet() 不会引发任何异常。所以现在我不知道为什么它不起作用:(

【问题讨论】:

    标签: php unit-testing phpunit dbunit


    【解决方案1】:

    已解决:原来 getDataSet() 没有被调用,因为我已经覆盖了 setUp() 并且没有意识到我应该从被覆盖的方法体中调用 parent::setUp()。

    所以结论是:如果你重写方法 setUp(),你总是必须调用 parent::setUp()。

    【讨论】:

    • 谢谢!由于这个原因,我已经把头撞在墙上好几个小时了!!
    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多