2012-02-29 10 views
0

私はいくつかのプロジェクトで使用されるフレームワークを開発しています。このフレームワークには、MSTestベースの単体テストと同様の実装方法が実装されています。統合テストの中核部分は別のアセンブリとしてフレームワークの一部になります。これをFr.IntegrationTests.dllとしましょう。AssemblyInitializeで装飾されたいくつかのメソッドを実行しますか?

フレームワークを使用するすべてのプロジェクトは、新しいアセンブリで独自の統合テストを実装する必要があります。これをProject.IntegrationTests.dllとします。このアセンブリは、Fr.IntegrationTests.dllのテストをいくつかの特定のテストによって拡張します。

問題は、Fr.IntegrationTests.dllとProject.IntegrationTests.dllの2つの個別の初期化を実行する必要があることです。両方のアセンブリでAssemblyInitializeを使用してこれを行います。しかし、プロジェクトの初期化だけが行われていることは私には分かりません。

複数の初期化メソッドでAssemblyInitializeを使用できるかどうか教えてください。 AssemblyInitializeで装飾された参照アセンブリ(Fr.IntegrationTests.dll)のメソッドも呼び出されるかどうかを知ることは重要です。

ありがとうございます!

+0

これはうまく動作しません。初期化メソッドが呼び出される順番はあいまいです。実際の理由はおそらく、ユニットテストランナーは、2番目のアセンブリが後で読み込まれてから周囲にあることを知らないためです。 –

答えて

0

ClassInitializeを使用してクラスごとにテストを構成する方がよいでしょう。また、私はかなり参照しているアセンブリの標準的な属性のいずれかをMSTestが尊重していないと確信しています。代わりにそのアセンブリに対してMSTestを直接実行したいと思うでしょう。

+0

MSTestは参照アセンブリの属性を実際には尊重しないため、プロジェクトの初期化の中でその初期化を呼び出さなければなりませんでした。 – llasarov

関連する問題