0

DBContext からの SELECT (LINQ を使用) データへの呼び出しを含む単体テストでは、次のエラーがスローされます。

データベースが作成されてから、'MyDBContext' コンテキストをサポートするモデルが変更されました。データベースを手動で削除/更新するか、IDatabaseInitializer インスタンスで Database.SetInitializer を呼び出します。たとえば、DropCreateDatabaseIfModelChanges 戦略は、データベースを自動的に削除して再作成し、オプションで新しいデータをシードします。

その特定のエラーを検索すると、Global.asax Application_Start メソッドに次の行を含める必要があると思われます。

System.Data.Entity.Database.SetInitializer<MyDBContext>( null );

これにより、アプリケーション自体の実行時に同様のエラーが修正されると思われます。残念ながら、アプリケーションを実行してもこのエラーは発生せず、単体テスト プロジェクトに Application_Start メソッドがないようです。カスタム データベース バックエンドを使用している単体テスト プロジェクトで発生した変更を無視する方法はありますか?

メインプロジェクトにしばらく取り組んだ後に単体テストプロジェクトを追加したので、どういうわけか台無しにした可能性がありますが、どうすればいいのか一生わかりません。Visual Studio 2010 で組み込みの単体テストを使用しています。

4

1 に答える 1

1

There are 2 methods that you could use with the VS unit testing framework allowing you to run some code before and after each test and before and after all the tests contained in the file

// Use TestInitialize to run code before running each test 
[TestInitialize()]
public void MyTestInitialize() 
{ 

}

// Use TestCleanup to run code after each test has run
[TestCleanup()]
public void MyTestCleanup() 
{ 

}

or:

// Use ClassInitialize to run code before running the first test in the class
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext) 
{ 

}

// Use ClassCleanup to run code after all tests in a class have run
[ClassCleanup()]
public static void MyClassCleanup() 
{ 

}
于 2012-07-17T06:15:58.570 に答える