2009-09-15 44 views
50

簡単な質問ですが、ソリューション内のすべてのテストを実行する前に一度だけ実行されるメソッドを作成するにはどうすればよいですか。MSTestのグローバルテスト初期化メソッド

+0

私は知っていることを望みます:(現在、私は、各TestClassが継承する抽象基本クラスを持っています。そのクラスの中で、私はTestInitializeメソッドを持っています。 ! –

+0

抽象基本クラスは静的コンストラクタを実装しています。テストが実行される前に一度だけ起動されます – mglmnc

答えて

88

AssemblyInitialize属性で修飾されたパブリック静的メソッドを作成します。

[AssemblyCleanup] 
public static void TearDown() 
{} 

EDIT:

もう一つの非常に重要な詳細:クラスティアダウンそのために

[AssemblyInitialize()] 
public static void MyTestInitialize(TestContext testContext) 
{} 

:テストフレームワークは、一度テストランあたり方法このセットアップを呼び出します。このメソッドが属する項目は、[TestClass]で修飾する必要があります。そうしないと、初期化メソッドは実行されません。

+3

複数のアセンブリでテストがある場合は、テスト実行時にMyTestInitializeが2回以上呼び出されます。 。 – BenCr