3

[AssemblyInitialize] とマークされたメソッドで実行されている TestCategory をプログラムで調べる方法はありますか?

特定のテスト カテゴリに固有の構成を行いたいと考えています。

4

1 に答える 1

3

いいえ、TestCategoryは、実行するテストを選択するためにMSTestによってのみ使用されます。テストの実行時に利用できる唯一の情報は、TestContextクラスを通じて公開されます。

(明らかに厄介な)アプローチの1つは、構成を遅延的に実行できる静的クラスまたはメソッドを作成し、指定されたカテゴリーの各テストメソッドからこれを呼び出すことです。ただし、共有グローバル状態を操作すると、MSTestが異なるシーケンスでテストをスケジュールするときに、予期しない動作が発生する可能性があることに注意してください。

統合テストを作成するときは、小さなテストアセンブリが多数あることを意味する場合でも、各アセンブリに強い依存関係と構成のまとまりがある方がよいと思います。つまり、特定のアセンブリ内のすべてのテストは同じセットアップを使用し、同じ依存関係を持っています。これにより、前のテストでグローバルな状態が変化する可能性が低くなります(断続的な不安定性につながります)。また、さまざまなカテゴリのテストで競合する構成変更を繰り返し行うことができないため、テストの実行が速くなることもよくあります。

于 2012-06-20T21:34:52.387 に答える