2011-12-14 1 views
0

私はVisual Studioで単体テストをいくつか作成しています。アプリケーションで特定のテストデータセットを作成する基本クラスを作成し、最後にテスト実行の単体テストが完了したら自動的にクリーンアップしますテストデータ私はデータの作成をうまく処理することができますが、テストの実行が完了したことを伝えることができるかどうかはわかりません。すなわち最後の単体テストが完了したときにトリガされるイベントを追加するにはどうすればよいですか?

  • UnitTest1とUnitTest2はUnitTestBaseCreateData(逆に、これらは試験データを作成UnitTest1とUnitTest2両方のコンストラクタの静的メソッドへの呼び出しを持つことができる)
  • UnitTest3を継承UnitTest4ではデータを作成する必要はありません。
  • UnitTests 1,2,3,4を選択して実行すると、テスト1はオンデマンドでテストデータが作成され、テスト4が完了すると自動的にクリーンアップされます。
  • UnitTests 3を選択して実行すると、テストデータは作成されず、クリーンアップコードは実行されません。
  • ユニットテスト1のみを選択して実行すると、テストデータは必要に応じて作成され、テスト4の完了後にクリーンアップされます。

があれば私は知らない、いくつかの[TestRunCleanup()]私は、テストデータを持っている場合、私は必要と見てフックとして使用できることを利用できる属性の方法(TestCleanupとClassCleanup属性に似ています) ...

+0

投票の結果は? – Daryl

答えて

2

AssemblyCleanupAttributeを使用できます。メソッドが属性で装飾されると、MSテストは、現在のテストの実行中の(そのアセンブリの)すべてのテストが完了するとメソッドを実行します。

[AssemblyCleanup] 
    public static void AssemblyCleanup() 
    { 
     //Remove data here when necessary 
    } 
+0

これはまさに私が探していたものです...私は、その後、C#メソッドと呼ばれるpowershellコマンドを実行するバッチファイルを実行するために、いくつかの主要なハックを行っていました。これはまさに私が探していたものです。 – Daryl

関連する問題