3

私は MsTest.exe を使用して、次のような名前空間を使用してテストを実行しています。

mstest.exe /testcontainer:"MyDllFile.dll" /test:"NameSpace.Folder.Folder1.*"

これは魅力的に機能しましたが、実行時にパラメーターをテストに渡すことができるようにする必要があったため、*.runsetttings ファイルと、RunTestParameters を使用してテストにパラメーターを渡し、TestContext のプロパティからそれらを取得する機能を見つけましたが、欠点は、実行したいテストについて非常に具体的にする必要があり、以下に示すように、テストを実行するために特定のメソッド名またはコンマで区切られた名前を指定する必要があることです。

vstest.console.exe "MyDllFile.dll" /Settings:"my.runsettings" /Tests:"TestMethod1,TestMethod2"

私も運がない TestCaseFilter を試しました:

vstest.console.exe "vstest.console.exe "MyDllFile.dll" /Settings:"my.runsettings" /TestCaseFilter:"TestCategory=MyTestCategory"

vstest.console.exeを使用してmstest.exeで実行できたことをどのように達成できるかについて、誰か提案がありますか?

ありがとう!!

4

1 に答える 1

4

vstest.console.exe のドキュメントは特に貧弱です。それは可能ですが、コマンドラインのヘルプも MSDN のドキュメントもその方法を説明していません。

TestCaseFilter 設定で使用できるオプションはアダプター固有のように見えますが、既定の MsTest アダプターでは、次のプロパティをフィルター処理に使用できます。

Name=<TestMethodDisplayNameName>
FullyQualifiedName=<FullyQualifiedTestMethodName>
Priority=<PriorityAttributeValue>
TestCategory=<TestCategoryAttributeValue>
ClassName=<ClassName> (Valid only for unit tests for Windows store apps, currently not available for classic MSTest)

..次の演算子を使用します。

= (equals)
!= (not equals)
~ (contains or substring only for string values)
& (and)
| (or)
( ) (paranthesis for grouping)

したがって、目的には、次の形式の TestCaseFilter で十分です。

/TestCaseFilter:"FullyQualifiedName~ProjectNamespace.Subnamespace.TestClass"

詳細と例はこちらhttp://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx

于 2016-03-07T14:19:08.677 に答える