PHPUnit에 여러 개의 flat xml 데이터 세트를로드하여 많은 비품을로드 할 수 있습니까?PHPUnit : 데이터베이스 테스트의 다중 데이터 세트
우리는 다소 복잡한 응용 프로그램을 작성하고 있으며 xml 데이터 세트는 상당히 커지고 있으므로 2-3 xml로 작성하려고합니다. 는 XML 설비의 API가 가가 감당할하지 않습니다 어떤 이유로, 다음은 YAML기구에 대한 작동합니다
<?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'
);
}
}
와우, 그냥 같은 문제를 만났지만 복잡한 데이터 세트를 다루기보다는 다른 테스트에서 사용할 수 있도록 원자 적으로 유지하는 것이 좋습니다. 특정 테스트에 데이터 세트를 단단히 연결하는 것은별로 의미가 없습니다. 당신이 그것을 알아낼 수 있었습니까? –
슬프게도, 안돼! 우리는 모든 테스트마다 많은 비품을 필요로합니다 (우리는 꽤 많은 테이블을 함께 가지고 있습니다), 각 테스트 케이스를위한 많은 파일에 비품을 복제하는 것은 우리에게 어려움이 될 수 있습니다. 분리 된 XML 픽스쳐로 이동하는 유일한 방법은 Zend_Test_PHPUnit_DatabaseTestCase의 래퍼 클래스를 만들고 "addXmlFile"메서드를 코딩하는 것입니다.하지만 그렇게 할 시간이 없었습니다. 다음 번에 필자는 필요할 때마다 별도로 yaml fixtures를 사용했다. –