もくじ
目次(WPF/xaml/C#/C++関連メモ) - tera1707’s blog
やりたいこと
前回の「vstest.console.exeでUnitTestする」の記事で、コンソール(バッチ)でUnitTestを実行した。
そのときは、UnitTestプロジェクトの中に書いたテストを全部実行していたが、今回は全部実行はせずに、実行するテストをクラス単位、メソッド単位で指定して実行したい。
やり方
/Tests:[test name]
オプションか、/TestCaseFilter:[expression]
を使う。
下記が、前回記事で作ったテスト実行用バッチだが、そこの中のvstest.console.exeに上記オプションを与えることで指定をする。
※下記バッチは、TestsやTestacaseFilterのオプションはまだ入れてない
rem 対象のUnitTestのdll名 set TESTDLL="TestProject1.dll" rem TestAgent2022のみインストールしている場合はこちら set VSTESTPATH="C:\Program Files (x86)\Microsoft Visual Studio\2022\TestAgent\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" rem VisualStudio2022をインストールしている場合はこちらにもある rem set VSTESTPATH="C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" rem テスト実行 %VSTESTPATH% %TESTDLL% /platform:x64 /inIsolation /Logger:trx pause
前回コード、前回バッチの実行結果はこれ
※ほかにも指定する方法あるっぽいが、自分が今回使ったものだけメモ。
オプション「/Tests:[test name]」を使う
vstest.console.exeに、/Tests:
オプションで、実施するメソッド名を指定する。
%VSTESTPATH% %TESTDLL% /platform:x64 /inIsolation /Logger:trx /Tests:Test_A
実行結果はコレ。
複数指定もできる。
%VSTESTPATH% %TESTDLL% /platform:x64 /inIsolation /Logger:trx /Tests:Test_A,Test2
オプション「/TestCaseFilter:[expression]」を使う
vstest.console.exeに、/TestCaseFilter:
オプションで、いろんな指定の仕方ができる。
expressionの部分は、下記に書き方が載っている。
名前で指定
Name=
で、名前が一致するテストを実行する。
%VSTESTPATH% %TESTDLL% /platform:x64 /inIsolation /Logger:trx /TestCaseFilter:"Name=Test_B"
→Test_B
を実施。
名前の一部で指定
Name~
で、指定の文字列を含む名前のテストを実行する。
%VSTESTPATH% %TESTDLL% /platform:x64 /inIsolation /Logger:trx /TestCaseFilter:"Name~Test_"
→Test_A
とTest_B
を実施。
クラス名で指定
ClassName=
で、指定のクラスの中に含まれるテストを実施する。
※namespace名を付けて書かないといけない。("ClassName=UnitTest1"だと見つからない)
%VSTESTPATH% %TESTDLL% /platform:x64 /inIsolation /Logger:trx /TestCaseFilter:"ClassName=TestProject1.UnitTest1"
→UnitTest1
クラスの中にあるTest_A
とTest_B
を実施。
その他
UnitTestのメソッドに、[Priority()]
や[TestCategory()]
のアトリビュートを付けていると、それで指定もできる。
また、指定の条件は|
や&
でつなげることもできる。
今回は試してないので、必要になったら試してみる。
参考
MS公式。VSTest.Console.exeのコマンドラインオプション。
MS公式。TestCase filterの書き方。
UnitTestの関連記事