PHPUnit数据库测试没有完全运行要测试的函数

时间:2013-06-03 22:01:17

标签: mysql performance phpunit

我有一个PHPUnit测试用例,用于测试对MySQL数据库进行一系列操作的函数。

当我通过PHPUnit运行测试时,该函数未完全运行,MySQL数据库无法使用数据执行所有必需的操作,因此PHPUnit返回false。另一方面,当我通过浏览器功能运行完全相同的操作时返回预期的结果。除此之外,在不同的测试用例中完成相同的过程也能正常工作。

如何解决此问题?

我已经调查了更多的问题是我从mysql获取数据的方式。下面的代码由于某种原因从数据库中获取不正确的mysql结果。

$dataSet = $this->getConnection()->createDataSet(array('media'));
$filterDataSet = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet);

$filterDataSet->setExcludeColumnsForTable('media', array('Filename', 'Type', 'Size'));
$expectedDataSet = $this->createXMLDataSet(dirname(__FILE__) . '\xml\MoveUpItem3.xml');
$this->assertDataSetsEqual($expectedDataSet, $filterDataSet);

我必须直接运行一个查询,如下所示,它从MySQL返回正确的输出:

$queryTable = $this->getConnection()->createQueryTable(
        "media", "SELECT `ID`, `Title`, `Description`, `album_id`, `position`
                    FROM `media`;");
$expectedTable = $this->createXMLDataSet(dirname(__FILE__) . '\xml\MoveUpItem2.xml');
$expectedTable = $expectedTable->getTable("media");

为什么会出现这个问题?

0 个答案:

没有答案