Laravelでテストをしています。
use DatabaseTransactions;
のtraitを使用しているため、トランザクションがはられて、tearDown時にロールバックが走ります。
その後にオートインクリメントをリセットしようとしていますが、リセットされません。
php
1 2class MyTest extends TestCase 3{ 4 use DatabaseTransactions; 5 6 public function setUp() 7 { 8 parent::setUp(); 9 10 $this->beforeApplicationDestroyed(function () { 11 // ロールバック実行後 12 // オートインクリメントリセット実行するが、リセットされない 13 $sql = "ALTER TABLE my_table auto_increment = ?;"; 14 // インサート文に変更した場合、クエリは実行される 15 // $sql = "INSERT INTO my_table (id, name) VALUES (?,'test');"; 16 $stmt = $this->pdo->prepare($sql); 17 $stmt->execute([1]); 18 }); 19});
方法を知ってる方がいらっしゃれば教えていただきたいです。
また、おかしな点があれば、指摘ください。
よろしくお願いします!
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。