52

毎時本番で自動的に実行される MSTest テストがあります。これらのテストの 1 つは、[Ignore]まだ実稼働環境で実行する準備ができていないため、属性でマークされています。
私のローカル環境はそのテストの準備ができているので、ローカル環境でそのテストを開始したいと思います。
テストコードの左側にある ReSharper のアイコンをクリックするか、ユニットテストセッションウィンドウで選択したテストを実行アイコンをクリックして、そのテストを実行しようとしましたが、何も起こりません。

現在、行をコメントアウトして修正してい[Ignore]ます。//ただし、コードをチェックインする前に 、コメント文字 ( ) を削除する必要があります。

[Ignore]'d testを一時的に実行する別の方法はありますか?

4

4 に答える 4

48

最近、このような問題に遭遇したとき、「Local Developer Debug」などの名前の新しいビルド構成をビジュアル スタジオ プロジェクトに追加し、既存のデバッグ構成の設定を使用します。次に、「Project -> MyProjectName Properties -> Build」に移動し、「Local Developer Debug」が選択された構成であることを確認し、「LOCALDEVBUILD」を「Conditional compliation symbols」に追加します。これにより、プリプロセッサ ディレクティブを使用して、コンパイル時にコードを「トグル」することができます。

#if (!LOCALDEVBUILD)
    [Ignore]
#endif

これがあなたが探しているものかどうかはわかりません...しかし、ビルドの意図に応じて(ビルド構成を介して)特定のコードを実行/利用することができます...この方法を使用すると、テストを無視したままにすることができますより多くの「公式」ビルドを作成しますが、必要に応じて自由に実行してください。

于 2012-04-12T08:54:35.293 に答える
36

テスト カテゴリを使用して、自動テストに含めたくないテスト メソッドをマークすることもできます。

[TestCategory("IgnoreOnBuild")]

したがって、[Ignore]属性を使用しません。そして、これをビルド定義のフィルターと組み合わせます。[基本] -> [自動テスト] -> [テスト ソース] -> [テスト ケース フィルター] の下にあります。

TestCategory!=IgnoreOnBuild
于 2014-06-10T11:25:42.910 に答える
3

testrunco​​nfig ファイルを使用してテストを有効/無効にする方法は他にもあるようです。ただし、IgnoreAttribute を使用すると、コードと共にコンパイルされるため、簡単に切り替えることができません。

ドキュメントから:

単体テストの無視属性は、単体テストのソース ファイル内に、他の属性やテストのソース コードと共に存在します。つまり、[テスト マネージャー] ウィンドウで単体テストを無効にし、後で MSTest.exe コマンド ライン ユーティリティを使用してテストを実行しても、テストは引き続き実行されます。ただし、単体テストに Ignore 属性を付けてアセンブリをコンパイルし、MSTest.exe を使用してテストを実行すると、テストは実行されません。Ignore 属性がテストの一部になっているため、実行されません。

于 2012-04-12T08:42:36.440 に答える