2016-04-04 11 views
0

すべてのレコードをすべてのテーブルから削除する方法はありますか?私は統合テストを行い、テストごとにデータを削除して再作成したい!Entity Frameworkコード:localdb内のすべてのレコードを削除する

私は特別なテストライブラリを使用していません。マイクロソフトだけが偽造しています。

ありがとうございました。

+0

ジミー・ボガード(オートマッパーの著者)の[Respawn library](https://lostechies.com/jimmybogard/2015/02/19/reliable-database-tests-with-respawn/)を使用したいです。 –

答えて

1

データベース全体を削除して再作成することができます。

Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>()); 

データベースを再作成した後にシードする必要がある場合は、DropCreateDatabaseAlwaysを上書きすることもできます。

+0

Iそれを使用しますが、データベースの最初の実行時にのみ削除されます。私は各テストの後に落としたいと思います。 –

+0

あなたはおそらく実装にかなり近いと思いますが、私は本当にあなたの統合テストのデータを独立させようと勧めています。したがって、データベースにスタティック・ルックアップ・タイプのデータをシードし、各統合テストで独自のセットアップ・データを作成させます。テスト間でトランザクションデータを共有しようとするのは、起こるのを待っている問題です。 Autofixtureは、オブジェクト内の擬似データを生成するタスクを自動化するすばらしいライブラリです。そのため、すべてのテストでそれを行う必要はありません。 – ryanrdl

+0

私はシードメソッドをimplmementし、それぞれのテストを独立して実行したいので、TestCleanupでテスト後にすべてのデータを削除し、TestInitで再作成しようとしています。 –

関連する問題