すべてのレコードをすべてのテーブルから削除する方法はありますか?私は統合テストを行い、テストごとにデータを削除して再作成したい!Entity Frameworkコード:localdb内のすべてのレコードを削除する
私は特別なテストライブラリを使用していません。マイクロソフトだけが偽造しています。
ありがとうございました。
すべてのレコードをすべてのテーブルから削除する方法はありますか?私は統合テストを行い、テストごとにデータを削除して再作成したい!Entity Frameworkコード:localdb内のすべてのレコードを削除する
私は特別なテストライブラリを使用していません。マイクロソフトだけが偽造しています。
ありがとうございました。
データベース全体を削除して再作成することができます。
Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
データベースを再作成した後にシードする必要がある場合は、DropCreateDatabaseAlwaysを上書きすることもできます。
Iそれを使用しますが、データベースの最初の実行時にのみ削除されます。私は各テストの後に落としたいと思います。 –
あなたはおそらく実装にかなり近いと思いますが、私は本当にあなたの統合テストのデータを独立させようと勧めています。したがって、データベースにスタティック・ルックアップ・タイプのデータをシードし、各統合テストで独自のセットアップ・データを作成させます。テスト間でトランザクションデータを共有しようとするのは、起こるのを待っている問題です。 Autofixtureは、オブジェクト内の擬似データを生成するタスクを自動化するすばらしいライブラリです。そのため、すべてのテストでそれを行う必要はありません。 – ryanrdl
私はシードメソッドをimplmementし、それぞれのテストを独立して実行したいので、TestCleanupでテスト後にすべてのデータを削除し、TestInitで再作成しようとしています。 –
ジミー・ボガード(オートマッパーの著者)の[Respawn library](https://lostechies.com/jimmybogard/2015/02/19/reliable-database-tests-with-respawn/)を使用したいです。 –