さまざまなプラットフォーム(64ビットと32ビット)を対象としたVisual Studio C#プロジェクトがあります。また、このプロジェクトをカバーする広範な単体テストもあります。プロジェクトの性質上、生成されるアセンブリはプラットフォームによって異なります(完全に修飾されたアセンブリ名ではなく、対象のプラットフォームに関係なくアセンブリ名は同じです)。次に、これらのアセンブリの単体テストを行います。これを行うための最良のアプローチは何ですか?また、ハドソンでテストレポート(コードカバレッジと単体テスト)を実行する必要があることにも注意してください。現在の実装には、2つの異なるプラットフォーム用の2つの異なるプロジェクトがあるため、テスト実行フォルダー(/ outディレクトリにあるフォルダー)が異なるイメージ形式のアセンブリで混乱することはありません。「単体テストの方法、Visual Studioでコードコードカバレッジを実行する方法」については、回答を期待していないことに注意してください。
2 に答える
VisualStudioのさまざまなプラットフォームを対象とした単体テストアセンブリを作成するための最良かつ最も簡単な方法は何ですか。
x86およびx64オペレーティングシステムで単体テストを実行してみましたか?ごく少数のことを除いて指摘する必要がありますが、コードの動作はまったく同じです。2つの重要な例外は、レジストリの操作と、プラットフォーム固有の安全でないコード(Handlesなど)の処理です。
正直なところ..あなたはすでにあなたが何をする必要があるかを知っているようです。
可能であれば、実際にアセンブリを Any-CPU にします (もちろん、CPU ターゲットを設定したことを意味する 32/64 相互運用性もあるかもしれませんが、それ以外の場合は CPU に依存しないようにします)、実行プロセスにアーキテクチャを決定させます。つまり、32/64 ビットです。これにより、テストする必要があるアセンブリの数が急速に削減されます。
MSTest (VS2010) は、必要に応じてこの作業を QTAgent(32).exe にファームするため、32 と 64 の両方を処理できるはずです。NUnit には 2 つのコンソール タイプがあり、1 つは 32 および 64 で実行する任意の CPU に設定され、もう 1 つは 64 ビット プラットフォームで 32 ビット アセンブリをテストするために 32 ビットに固定されています。他のテスト ツールには、独自のアプローチがある場合や、ここで説明した 2 つのいずれかを使用する場合があります。
hudson で使用できるカバレッジ ツール:
他にも適切かもしれませんが、私はそれらを使用していないので、hudson 経由での使用に適しているかどうかについてコメントすることはできません。つまり、ビジュアル スタジオのものはコマンド ラインで駆動できる可能性があります。