iOS編はあるのかって?Mac持ってないのでできないのでMac持ってる人だれかお願いします。
Xamarinプロジェクトの作成
ということで、テスト対象のプロジェクトを作りましょう。 今回は、Prismのテンプレートパックを入れたら作られるプロジェクトテンプレートで行ってみたいと思います。
visualstudiogallery.msdn.microsoft.com
AndroidとiOSのプロジェクトを一応作っておきます。
UITestプロジェクトの作成
プロジェクトの新規作成でCross-Platformの中にあるUI Test App (Xamarin.UITest | Cross-Platform)を作成します。今回はUITestの書き方の説明の回ではないので、さくっとデフォルトのままでいきます。ちょっとだけ中身を見ると、スクリーンショットをとっているだけのテストになります。
using System; using System.IO; using System.Linq; using NUnit.Framework; using Xamarin.UITest; using Xamarin.UITest.Queries; namespace UITest1 { [TestFixture(Platform.Android)] [TestFixture(Platform.iOS)] publicclass Tests { IApp app; Platform platform; public Tests(Platform platform) { this.platform = platform; } [SetUp] publicvoid BeforeEachTest() { app = AppInitializer.StartApp(platform); } [Test] publicvoid AppLaunches() { app.Screenshot("First screen."); } } }
Xamarin Test Cloud
次は、VSTSにプロジェクトを上げる前にXamarin Test Cloudの環境を整えておきます。 Xamarin Test Cloudは、会社のメアドを使えば30日間トライアルできます。そうじゃなければ、ちょっと高いです。
画面上部のNew Test Runを選ぶとテスト対象の機種を選ぶ画面になります。+ New Android appから好きなものを選びましょう。私は3種類くらい選びました。
次に言語とかえらびます。
そうすると、こういうコマンドうってねっていう画面が出てきます。このコマンドを控えておきます。
Visual Stduio Team Servicesの作成
VSTSでプロジェクトを作成します。https://oooooo.visualstudio.comからプロジェクトを作成しましょう。
Codeのタブに行くとGitのリポジトリのURLが取得できるので、先ほどVisual Studioで作成したプロジェクトをPushしておきましょう。
ビルド定義の作成
次にBuild & Releaseを開きます。New definitionを選択しましょう。
Xamarin.Androidというのがあるので、それを選びましょう。
次に、ビルドするリポジトリとかを選びましょう。GitHubとかも選べますね。今回はVSTSのリポジトリなのでそのままでいいです。
作成するとTest Cloudのところだけ赤くなってるので、さきほど採取したコマンドから該当パラメータをコピペします。 赤で塗りつぶしてたのがそれにあたります。
Saveして名前をつけます。ここではXamarinTestCloudという名前にしました。
Queue New Buildを押すとビルドが始まります。
こんなビルドエラーが出たら
VSTS上のXamarinのバージョンと、ローカルでのXamarinのバージョンが食い違ってる(主にVSTSのほうが古いとか)とビルドでこける可能性があります。こんなときはつかえねーなーとあきらめるんじゃなくて、ビルドを自分のビルドマシンでやることができます。httpsで外部サイトが見える状態ならできるみたいなので敷居はわりと低いでしょう(認証プロキシは未検証)
画面上部の歯車を押してAgent Queuesを押すとDownload agentというのがあるので、そこからagentをダウンロードします。
ダウンロードしながら、認証に必要なキーをとってきます。画面右上のほうからSecurityを選びます。
Personal access tokan(PATとか略されてる)でAddをおして適当に情報を入れます。
アクセス用のキーは控えておきます。(消すときにも必要になるので大事にとっておきましょう)
ダウンロードしたagentをc:\agentあたりに展開します。
config.cmdを実行して構成します。URLは、自分のVSTSのURLでPATはさきほど入手したものです。あとはデフォルトでいいでしょう。サービスとして動かしたいひとはそのようにしてください。
PS C:\agent> .\config.cmd >> Connect: Enter server URL > https://okazuki.visualstudio.com Enter authentication type (press enter for PAT) > PAT Enter personal access token > **************************************************** Connecting to server ... >> Register Agent: Enter agent pool (press enter for default) > Enter agent name (press enter for KAZUKI-SFB) > Scanning for tool capabilities. Connecting to the server. Successfully added the agent Testing agent connection. Enter work folder (press enter for _work) > 2016-10-11 04:51:23Z: Settings Saved. Enter run agent as service? (Y/N) (press enter for N) >
run.cmdを実行するとエージェントが動き始めます。
PS C:\agent> .\run.cmd Scanning for tool capabilities. Connecting to the server. 2016-10-11 04:53:23Z: Listening for Jobs
この状態でビルド定義を編集してGeneralのタブにあるDefault agent queueをHostedからDefaultに変えることでagentをつかうようになります。
SaveしてQueue new buildしましょう。
ビルド結果の確認
こんな感じでビルドが通れば成功です。
Xamarin Test Cloud側にもこんな感じで結果が表示されます。
今後の課題
- ローカルでUIテストしたいね
- iOSどうなるの?