1.21 jigowatts

Great Scott!

Jenkins でMSBuildと単体テストをジョブ実行する

概要

MSBuildでコマンドラインからビルドする」、「VSTest.Consoleでコマンドラインからテストを実行する」とやってきたので、今回はJenkinsでビルド・テスト実行を行ってみたいと思います。

sh-yoshida.hatenablog.com
sh-yoshida.hatenablog.com

f:id:sh_yoshida:20170602013815p:plain

環境

Jenkins

JenkinsとはJavaで書かれたオープンソース継続的インテグレーションツールである。

https://ja.wikipedia.org/wiki/Jenkins

Jenkinsのインストールは省略します。ダウンロードしてウィザードに従い進めていけばokです。私の環境はC:\Jenkinsにインストールしました。
jenkins.io

Jobの作成

それでは、[新規ジョブ作成]よりJobを作成していきます。ジョブ名は適当に「MyJob」で。[フリースタイル・プロジェクトのビルド]を選択しました。

f:id:sh_yoshida:20170602003033p:plain

[ビルド手順の追加]で[Windowsバッチコマンドの実行]を選択します。

Windowsバッチコマンドの実行

これでコマンド入力ができるので、前にやったMSBuildとVSTest.Consoleのコマンドをそれぞれ登録して保存、ビルド実行で出来ました!ハイ終わり!つーのもあれなので、プラグインを使ってみます。

f:id:sh_yoshida:20170601234427p:plain

Plugin

[Jenkinsの管理]-[プラグインの管理]から以下のプラグインをインストールしました。インストールができたら、それぞれ設定していきましょう。

  • MSTest plugin
  • VSTest Runner plugin

Pluginの設定

[Jenkinsの管理]-[Global Tool Configuration]で出来ます。初見でネットで調べてたらシステムの設定でできるって書いてあったけど無くてはまりました。UIが変わったタイミングだったのかな。

f:id:sh_yoshida:20170601234458p:plain

MSBuildは名前とexeのパスを登録しておきました。パスはexeの指定なし。

c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

f:id:sh_yoshida:20170601234539p:plain

VSTestも名前とパスですが、こちらはexeまで指定。なんか警告でてるけど。。

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

f:id:sh_yoshida:20170601235028p:plain

これでPluginの準備ができたので、ジョブの設定に戻りましょう。

MSBuild

さきほどのコマンド実行の設定は削除して、[ビルド手順の追加]-[MSBuildの実行]。MSBuildバージョンは先ほど設定したPluginの名前を選択。MSBuildビルドファイルには対象のソリューション、コマンドライン引数には各種スイッチを入力します。

f:id:sh_yoshida:20170601234945p:plain

VSTest Runner

続きまして、同様に[ビルド手順の追加]-[VSTest実行]を追加します。VsTestバージョンにPluginで設定した名前、Test Filesにテスト対象のDLLファイルのフルパスを入力します。
f:id:sh_yoshida:20170601234647p:plain

さらに、[高度な設定]ボタンを押下し、プラットフォームの種類、フレームワークのバージョンなどを指定して保存します。

f:id:sh_yoshida:20170601234806p:plain

これでプラグインを使用するビルドの設定ができました!

Jobの実行結果

[ビルド実行]ボタンを押下して実行した結果、うまく行きました♪

f:id:sh_yoshida:20170602013248p:plain

workspaceにビルドログとテスト結果も出力されてます。

f:id:sh_yoshida:20170602013326p:plain

sh-yoshida.hatenablog.com
sh-yoshida.hatenablog.com