是否可以在
PHPUnit上加载多个平面xml数据集来加载大量的灯具?
我们正在编写一个相当复杂的应用程序,并且xml数据集变得非常大,所以我想把它放到2-3 xml中.
以下是测试用例的当前代码:
<?PHP class My_TestBase extends Zend_Test_PHPUnit_DatabaseTestCase{ /** * Zend_Application * @var Zend_Application */ protected $_application; /** * Connection * * @var Zend_Test_PHPUnit_Db_Connection */ private $_connection; /** * Returns the test database connection. * * @link http://framework.zend.com/wiki/display/ZFPROP/Zend_Test_PHPUnit_Database+-+Benjamin+Eberlei * @return PHPUnit_Extensions_Database_DB_IDatabaseConnection */ protected function getConnection(){ if($this->_connection === null){ $Resources = $this->_application->getOption("resources"); $conn = Zend_Db::factory($Resources["db"]["adapter"],$Resources["db"]["params"]); $this->_connection = $this->createZendDbConnection($conn,$Resources["db"]["params"]["dbname"]); } return $this->_connection; } /** * Returns the test dataset. * * @link http://framework.zend.com/wiki/display/ZFPROP/Zend_Test_PHPUnit_Database+-+Benjamin+Eberlei * @return PHPUnit_Extensions_Database_DataSet_IDataSet */ protected function getDataSet(){ return $this->createFlatXMLDataSet(__DIR__."/seed_data.xml"); } /** * Setup */ protected function setUp(){ $this->_application = new Zend_Application( APPLICATION_ENV,APPLICATION_PATH . '/configs/application.ini' ); }
}
免责声明:以下内容仅适用于yaml灯具,由于某种原因,xml灯具API不能提供相同的功能(检查源代码),不要问我为什么,似乎我们应该能够添加多个表而不管夹具文件格式类型.
API有点笨拙,正是为什么我不喜欢将args传递给构造函数,特别是在这种情况下,但尝试以下(这已经过测试和工作):
class MyTest extends PHPUnit_Extensions_Database_TestCase { protected function getDataset() { $primary = new PHPUnit_Extensions_Database_DataSet_YamlDataSet('etc/fixture/dbname/table1.yml'); $primary->addYamlFile('etc/fixture/dbname/table2.yml'); $primary->addYamlFile('etc/fixture/dbname/table3.yml'); return $primary; } ... }