Doctrine 2 を使用する Zend Framework アプリケーション (バージョン 1.11) があります。モデルやフォームなどでテストを実行するように PHPUnit をセットアップしました。テストはうまく機能しますが、問題が 1 つあります。テストが完了すると、テスト データがデータベースに残ります。以下は、私のテストの 1 つの基本的なサンプルです。
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に自動インクリメント値をリセットさせる方法があれば、それは素晴らしいことです.