Visual StudioのNUnitテストに基づくコードカバレッジ

さらに苦労せずに、次の状況にあると仮定します。

1つの小さな「しかし」だけがあなたを邪魔します。VisualStudioに統合されたテストランナーは、独自のMSTestのみを認識し、最愛のNUnitと軽poundにまったく注意を払いません。 どうする





上記の状況を簡単な例で簡単な例で検討します。 Visual Studio(この例ではVisual Studio 2010 Ultimate)では、クラスライブラリタイプの新しいプロジェクトを作成し、わかりやすくするためにTestedAssemblyと呼びます。 上記のプロジェクトでは、単一のTestedClassクラスを追加します。このクラスは、唯一の単純なGetSomeStringメソッドで構成されます。







ここで、テストを伴うプロジェクトに従事します。 別のクラスライブラリをソリューションに追加します。これをTestAssemblyと呼びます。 このアセンブリでは、単一のGetSomeStringTestメソッドを持つTestedClassTestクラスも1つだけになります。







さて、ここで最も興味深いものについて説明します。VisualStudioで、実行したくないテストによるコードカバレッジに関するデータを収集する方法です。 まあ、彼が望んでいないなら、彼は、彼の分野の専門家、すなわちNUnit自身がこの問題を取り上げることはできません。 今回はテストプロジェクトタイプの、辛抱強いソリューションに別のプロジェクトを追加し、NUnitProxyなどと呼びます。 スタジオはUnitTest1.csファイルを自動的に配置します。これには、明確な良心を持って、代わりにGeneric Testを削除して追加します。 テスト設定の最初のフィールドでは、nunit-console-x86.exeへのフルパスを指定する必要があります(x86が重要であることに注意してください)。 主なもの-引用符を忘れないでください。







ここで、NUnitProxyプロジェクトを追加した後、ソリューションで魔法のように具体化されたソリューションアイテムフォルダーに移動し、Local.testsettingsファイルをダブルクリックします。







[テスト設定]ダイアログが開きます。このダイアログで[データと診断]タブに移動し、[コードカバレッジ]チェックボックスをオンにして、[構成]ボタンをクリックします。 Visual Studioがコードカバレッジデータを収集するアセンブリを選択するように設計された[コードカバレッジ詳細]ウィンドウが表示されます。 ここにはもう1つ小さなニュアンスがあります。テストされたプロジェクトの\ bin \ Debug \フォルダにあるアセンブリを参照すると、分析の結果は宇宙の魅惑的な空虚になります。 [アセンブリの追加...]ボタンをクリックして、テストプロジェクト(この場合はTestAssembly)の\ bin \ Debug \フォルダーにあるテスト対象のアセンブリへのパスを指定します。 [Instrument assembly in place]チェックボックスが選択されていることを確認し、落ち着いて、[OK]、[Apply]および[Close]をクリックします。







以上です。 Visual Studioはプロキシテストを確認して実行し、NUnitコンソールが開いているのを確認します。テストの実行が完了すると、コードカバレッジタブに移動し、非常に表現力豊かな結果を確認できます。







さて、最後に、大さじ2杯のタールを蜂蜜の樽に入れます。 まず、Visual Studioはx64アセンブリをインストルメントする方法を知りません。コードカバレッジが必要な場合は、x86で再コンパイルします(どのCPUも動作します)。 第二に、アセンブリ内のコードがまったくカバーされていない場合、このアセンブリは最終レポートに含まれません(GetSomeStringTestメソッドの本文をコメントアウトすることで実験できます)。複数のアセンブリのデータ)。



All Articles