我有一個使用Doctrine 2的Zend Framework應用程序(版本1.11)。我已經設置了PHPUnit來對我的模型和表單以及其他類型運行測試。測試效果很好,但有一個問題:一旦測試完成,他們會將測試數據留在數據庫中。下面是我的一個測試的基本樣本:PHPUnit:如何在測試完成後從我的數據庫中刪除測試數據?
class VisaTypeEntityTest extends ModelTestCase
{
public function testCanSaveAndRetrieveVisaType()
{
$addVisaType = new \Entities\VisaTypes();
$addVisaType->setEnglishName('Test Visa Type')
->setJapaneseName('試し')
->setKanaName('タメシ')
->setDescription('Description of the test visa type');
$this->em->persist($addVisaType);
$this->em->flush();
$getVisaType = $this->em->getRepository('\Entities\VisaTypes')
->findOneByEnglishName('Test Visa Type');
$this->assertEquals('Test Visa Type', $getVisaType->getEnglishName());
}
}
顯然該數據是爲了確保一切猶太實際上被輸入到數據庫中。但我不希望每次運行測試時都將所有測試數據都粘貼到數據庫中,我也不想去手動刪除它。
有什麼我可以做的,比如使用tearDown()方法在測試完成後擺脫測試數據?如果是這樣,是否有可能將表格id域中的自動增量「回滾」到他們之前的值?我知道如果id之間存在差距真的不重要,但是如果有某種方式可以讓Doctrine重置自動增量值,那將是非常好的。
您正在使用哪個數據庫? MySQL的?如果是這樣,哪個存儲引擎? MyISAM或InnoDB? –
MySql數據庫,InnoDb存儲引擎。 – blainarmstrong