JenkinsでiOSアプリをテスト後にレポートを確認する
概要
JenkinsでiOSアプリをテスト後にレポートを生成する方法 少し前に試した内容なので少し情報が古いことがあると思います。
背景
iOSアプリをテストする場合、xcodebuildをコマンドラインで実行することでテストができる。
ただし、xcodebuildで実行した場合、2つの課題があった。
- 課題1:テスト結果がConsole上でしか確認できない
- 課題2:Consoleで確認する場合、読みにくい
なので、Jenkins上でテスト結果を表示できるような方法を探していた。
解決策は3パターン
いずれの解決策でもJenkinsが読み取れるxmlファイルを出力することができる。
また、人が読めるようにConsoleに出力することができる
- 策1:xctool というコマンドラインツールでテストを実行
- 策2:fastlaneというツールを利用してテストを実行
- 策3:xcprettyというコマンドラインツールでxcodebuildの実行結果をpipeline処理する
xctoolについて
xctoolはFacebookが作成したxcodebuildのラッパーツール
しかしながら、xcode8との相性が悪そうだったので、断念。
基本的な使い方
xcodebuildでテスト用にビルドを実行する。
ビルド後xctool でテストを実行する。
しかし、今回の環境ではエラーで失敗。関係しそうな記事を読み漁ったが解決せず。
$ xctool -project APP_NAME.xcodeproj -scheme APP_SCHEME -sdk iphonesimulator -configuration Debug -destination "platform=iOS Simulator,name=iPad Air 2,OS=10.2" run-tests ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Failed to query the list of test cases in the test bundle: Test bundle not found at: "APPLICATION PATH" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Info] Collecting info for testables... (1680 ms) Failed to query the list of test cases in the test bundle: Test bundle not found at: "APPLICATION PATH" ** RUN-TESTS FAILED: 0 passed, 0 failed, 2 errored, 2 total ** (1681 ms)
xcode8での対応が間に合っていないのではないかと推測。
fastlaneについて
最近iOS界隈で注目されているツール。
テストだけでなく、AppStoreへの配布まで自動でやってくれる優れもの。 ただし、できることがとても多いため、今回の用途のために試しに使ってみるには少しハードルが高いと感じた。
ある程度勘所をつかんだら、実戦投入したいところ。なので、今回は使用を断念。
xcprettyについて
xcodebuildからpipeline処理でレポート出力をしてくれる。
最終的に、この方法で落ち着いた。
どのような画像が表示されるかは、参考URLを参照ください。
使用方法
Jenkinsの設定方法
(以前からのjenkinsの設定を正しくやっていることが前提)