こんにちは。ビーグルソフトの真鍋です。
VisualStudio開発した資産をCI(継続的インテグレーション)で維持したいと考える今日この頃です。JavaやRailsであればJenkinsを利用する、CircleCIを利用するなどありますが、.NETについてはあまりありません。とはいうものの、そこはマイクロソフトさんですよ。Visual Studio Team Services
というプロジェクト管理システムを用意してくれています。
私も設定についてはまだよくわかっていないところがありますが、[Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! Comm Tech Festiv…を参考にすれば何ができるかはわかるかと思います。
このVSTSですが、イメージとしてはTraviceやCircleCIのようにあらかじめビルドの手順やデプロイ手順などは定義されていますので、.NETでAzureへデプロイとかならすんなりと進めそうです。が、少し違うことをやろうとするとハードル上がります。この辺はRailsや.NETの特徴ですよね。
今回すこし困ったのが、テスティングフレームワークにNUnitを利用した場合にテストでエラーが出るという内容でした。VSTSではMSTestがテスティングフレームワークの標準になっているのですが、今回はNUnitを利用しようと考えています。
ということで、どうやって設定するのかいろいろと調べたところ、この辺の情報がヒットしました。
Support NuGet based test adapters in the VSTest task · Issue #311 · Microsoft/vso-agent-tasks
この通りPath to Custom Test Adapters
に$(Build.SourcesDirectory)\Packages
を設定をしてみます。
こんな感じで実行結果がグリーンになりました。
…。BuildSuccessまでえらく赤くなっているのですが、これは試行錯誤した結果ですかね。当初NUnit3を利用していたのですが、どうにも上手くいかず結局NUnit2.6を利用することになりました。この辺はおいおい確認していきたいと思います。
PM> Get-Package Id Versions ProjectName -- -------- ----------- NUnit {2.6.4} VstsExampleTests NUnit.Runners {2.6.4} VstsExampleTests NUnitTestAdapter {2.0.0} VstsExampleTests
今回は、コンソールアプリケーションでのお試しだったのですが、これからASP.NET アプリケーションあたりを自動デプロイできるように試してみようと思います。