VSTSからAppCenterでテスト

はじめに

ここまででAppCenterを使ってクラッシュ・エラーレポート、イベントによる分析、ビルド、テスト、配布ができるようになりました。 今度はVSTSからこのプロジェクトのビルドとAppCenterでのテストをできるようにします。

前準備

ここで注意点ですが、自分が試した限りではAppCenterでのビルドではではビルド成功するのにVSTSのビルドではそのままだと_CompileToDalvikWithDx:でOutOfMemoryで失敗します。 おそらくビルドの行われるホスト環境の違いによるものだと思いますが、詳しくは不明です。 のでVSTSでのビルドを行う前に次の行をXamarin.Androidの最初のPropertyGroupにセットしコードをプッシュしておいてください。

<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>

AppCenterでデバイスセット作成

まずVSTSからのテストで使うため、AppCenterのTest>Device setsから新しいデバイスセットを作成します。 f:id:omanuke-ekunamo:20180409131902p:plain

ここではPixel2とNexus5Xを指定して適当な名前を付けNew device setで作成します。 f:id:omanuke-ekunamo:20180409131915p:plain

ビルド定義作成・実行

ビルド定義作成

VSTSに戻り新しいビルド定義を作成します。New definitionを押します。 f:id:omanuke-ekunamo:20180409131936p:plain

ソースを選び、Xamarin.Androidテンプレートを選びます。 f:id:omanuke-ekunamo:20180409132009p:plain f:id:omanuke-ekunamo:20180409132018p:plain

ビルドの各ステップの設定画面になります。

AppCenterConnection作成のためのAppCenterへのAPI Tokenの作成

後述のTest with Visual Studio App Centerタスクの設定で使うためAppCenterへのAPI Tokenを作成します。 AppCenterの左下のアカウントアイコンよりAccount Settingsを押します。 f:id:omanuke-ekunamo:20180409132052p:plain

API Tokensを選択し右上のNew API tokenを押す。 f:id:omanuke-ekunamo:20180409132119p:plain

適当な名前を付けて右下のAdd new API tokenを押す。ここではVSTSToAppCenterとしました。 f:id:omanuke-ekunamo:20180409132133p:plain

作成されたAPI tokenの値が表示されるのでコピーする。閉じると二度と見れないので注意してください。メモ帳などに書き写しておいてください。

設定

Test with Visual Studio App Centerのタスクについて設定します。デフォルトではDisableになっていますが、設定項目の下の方にあるControlOptions/EnableでEnableにできます。 f:id:omanuke-ekunamo:20180409132328p:plain

次の項目を設定します。

  • Prepare Tests
    • Test framwork = Xamarin UI Testを選択
    • Build direcotry = $(build.binariesdirectory)/$(BuildConfiguration)/test-assembly を設定。
    • Test tools directory = $(build.sourcesdirectory)/packages/Xamarin.UITest.2.2.4/tools 使っているXamarin.UITestのバージョンに合わせること。
  • Run Tests
    • App Center connection = Newより表示されたダイアログに適当な名前と先ほど作成したAPI Tokenを設定し作成、それを使います。
    • App slug = ユーザー名/アプリケーション名
    • Devices = ユーザー名/デバイスセット名
    • System language = Japanese
  • Control Options
    • Enabledにチェック

設定した項目は以下のようになります。 f:id:omanuke-ekunamo:20180409132900p:plain f:id:omanuke-ekunamo:20180409132914p:plain

ビルド実行

設定を終えたらSave&queueよりSave&queueをおして保存するとともにビルドを開始します。 開始したビルドの状況はこちらをクリックすることにより進行状況をログなどで確認できます。 f:id:omanuke-ekunamo:20180409132938p:plain f:id:omanuke-ekunamo:20180409132948p:plain

正しく設定できていれば次のようにAppCenterでのテストが開始されます。 f:id:omanuke-ekunamo:20180409133001p:plain

VSTSから実行したテストは完了後にAppCenterを見ると実行結果を確認できます。 f:id:omanuke-ekunamo:20180409133025p:plain f:id:omanuke-ekunamo:20180409133034p:plain

終わりに

これでVSTSからもAppCenterでテストができるようになりました。 気になるのはAppCenterの方でテストを行う際にはKeyStoreを設定したのですが、こちらでは設定しないままでも大丈夫されるようです。この辺疎いんですが、どうなってるんですかね… まぁとにかくこれでXamarin.FormsアプリをAppCenterやVSTSを絡めてゴニョゴニョするとっかかりができると思いますので、皆さま各自必要に応じて掘り下げていってくださいまし。