a2 Tech blog

試したこと・調べたこと・感じたことを発信するITエンジニアの日記です。仕事とは直接関係ないけど興味あることを模索していきます。

Coded UI Testをコマンドラインから実行する

f:id:ninna2:20170409015346j:plain:w360

Coded UI Test をVisual Studio で実装して、そのまま実行するケースがもちろん多いとは思いますが、夜間にバッチ的に実行したり、定期的に実行するにはVisual Studio以外から実行する方がいいでしょう。

もっというとjenkinsなどのCIツールで勝手にサイクル回して実行してくれる用にできればいいのですが、いきなりそこまでもっていくのも難しいので1歩ずつ進めていきたいと思います。とりあえず、コマンドラインからCoded UI Testを実行 してみようと思います。

準備

環境とテストコードは適当に準備しておいて下さい。:

ninna2.hatenablog.com

コマンドラインからの実行方法

コマンドラインからの実行方法で、MSDNに載っているのは3パターンです。MSDNに従ってやっていればまぁ出来るのですが、要点だけまとめていきたいと思います。

  • VSTest.Console.exe : Visual Studio 2012 で MSTest.exe の代わりになるもの。今後はこちらを使っていくのがいいと思っている。
  • MSTest.exe : MSTest.exe は、テストを実行するために使用されるコマンド。昔からあるのでドキュメントも豊富。
  • TCM.exe : Microsoft テスト マネージャー。あまりこれについては詳しくない。

というわけで、VSTest.Console.exe を使います。

コマンドラインからの実行

VSTest.Console.exe をどこからでも使えるように、Pathに登録してしまいましょう。毎回この手の作業をしなくちゃいけないのはどうにかならないものかな。

私は、Visual Studio 2017 rc を使用しているので、下記のPathを環境変数に追加しました。

C:\Program Files\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow

コマンドラインからのテストの実行方法は、VSTest.Console.exe の引数に、テストクラスのDllを指定して実行するだけです。テスト実行対象のDLLが格納されているディレクトリで実行してますが、Pathは適当に読み替えてください。今回のテスト対象のDLLは、SeleniumSamplePage.dllです。

C:\workspace\CodedUITestProject1\SeleniumSamplePage\bin\Debug>vstest.console SeleniumSamplePage.dll
Microsoft (R) Test Execution Command Line Tool Version 15.0.26004.1
Copyright (c) Microsoft Corporation.  All rights reserved.

テスト実行を開始しています。お待ちください...
成功   CodedUITestMethod1

テストの合計数: 1。成功: 1。失敗: 0。スキップ: 0。
テストの実行に成功しました。
テスト実行時刻: 37.4832 秒

実行すると、ブラウザが勝手に立ち上がって、テストを実行してくれます。Visual Studio で実行した時と基本は同じです。

テスト対象のファイルを複数指定したい場合は、スペースでどんどん書いていけばいいようです。特定のテストをだけ実施したい場合は、オプション指定で、テスト名を指定すればいいみたいですね。

/Tests:<テスト名>
指定された値に一致する名前のテストを実行します。複数の値を指定するには、名前をコンマで区切ってください。例: /Tests:TestMethod1

簡単に解説しましたが、これ単発ではあまり役立たないと思うので、いつかJenkins様と連携をしてみたいと思います。