2017-09-19 17 views
2

編集:これはVisual Studio 2017の問題です。 VS2015と同じ手順を繰り返し、すべての作業が終了しました。mstest.exeとVS2017でフィルタリング/カテゴリ

私はVS2017で2つの単体テストで簡単な単体テストプロジェクトを作成しました。 これらのテストは、以下のshwonとして「鉱石」カテゴリでマークされています

[TestClass] 
public class Copper 
{ 
    [TestCategory("Ores"), TestMethod] 
    public void CheckCopper() 
    { 
     DataMiner locMiner = new DataMiner(); 

     string result = locMiner.GetCopper(); 

     Assert.AreEqual("Copper", result); 
    } 
} 

今私は/カテゴリフィルタでコマンドラインを経由してmstest.exeでこのテストを実行してみてください。 完全なコールは、次のとおりです。MSTEST /testcontainer:TestSystem.dll /カテゴリ:MSTest.exeは、Path変数を介してリンクされて

鉱石: 「C:\プログラムファイル(x86の)\のMicrosoft Visual Studioの\ 2017エンタープライズ\ \ Common7 \ IDE; "

「実行するテストはありません」というメッセージが表示されます。カテゴリを「Ores」やOresとして書くと問題はありません。/categoryフィルタがなければ、mitテストは意図したとおりに実行されます。

カテゴリで失敗したテストラン。 enter image description here カテゴリに問題はありません。 enter image description here

答えて

1

MSスタッフの親切な助けを借りて、私は解決策を見つけました。

最初に明確化: mstest.exeは、VS2017で作成したMSTestV2アセンブリをサポートするものではありません。 たぶん私は十分に深く掘るdidntのか、文書化さ悪いです...

とにかく、vstest.console.exeは、この構成では、コマンドラインベースのユニットテストを実行するための適切な方法です。

しかし、別の落とし穴があります。VS2017にはvstest.console.exeの2つのバージョンがインストールされています。

1を動作していない、時代遅れ: "C:\プログラムファイルのMicrosoftのVisual Studio \(x86の)\ 2017のEnterprise \ \ Common7 \ IDE \拡張\ TestPlatform \ vstest.console.exe" バージョン15.0であります.0.0

使用するバージョン: :ある "C \プログラムファイル(x86の)\のMicrosoft Visual Studioの\ 2017 \エンタープライズ\ Common7 \ IDE \ CommonExtensions \マイクロソフト\ TestWindowの\ vstest.console.exeは"バージョン15.0.26720.2

最後に、VS2017 MSTestV2の動作テストのサンプルは、fアクティブ: vstest.console.exe works fine

関連する問題