LoginSignup
10
3

More than 1 year has passed since last update.

テストコードがローカルだと成功するのにBitrise上だと失敗する原因を特定する方法

Last updated at Posted at 2022-12-01

これは ZOZO Advent Calendar 2022 カレンダー Vol.7 の 1 日目の記事です。

なぜか、ローカルで走らせたテストだと上手くいくのに、Bitriseで実行すると失敗する時ってありますよね。

そんな時に限ってBitriseのログを見るとFailing testsと書かれているだけで、原因が出力されていない。。。

そんな時は、Bitrise CLIを使ってXcodeのxcresultを確認しましょう。

補足. Bitrise CLIとは

Bitrise CLIは、Bitriseのオープンソースランナー。
Bitrise環境をローカルで再現・実行することが可能で、ローカルだと上手くいくけどBitriseだと失敗する場合の原因特定に便利です。
ちなみに実行にBitriseアカウントは不要です。

1. Bitrise CLIをインストール

Bitrise CLIのインストールはとても簡単で以下のコマンドを二つ叩けば完了します。

brew update && brew install bitrise

bitrise setup

2. bitrise.ymlをルートに置く

Bitrise CLIでリモートの環境を再現させるため、bitrise.ymlを実行ディレクトリのルートに置いておきます。

3. Bitriseでテストワークフローを実行する

bitrise.ymlに定義しているテスト用ワークフローを以下のコマンドで実行してください。

bitrise run [実行したいbitrise.ymlに定義しているテストワークフロー]

4. Xcodeが吐くテストログを取得する

テストが失敗すると以下のようなログが吐かれます。

** TEST FAILED **
If you can't find the reason of the error in the log, please check the xcodebuild_test.log.
<中略>
Exporting test results
$ cp "-a" "/var/folders/xxxx/Test-XXXX.xcresult" "/var/folders/xxxx/XXXX/"

そのログ内に以下のようなコマンドが書かれているのでターミナル上で実行してコピーします。

cp "-a" "/var/folders/xxxx/Test-XXXX.xcresult" "[保存したいディレクトリを指定]"

5. xcresultを開いて原因を特定する

あとは上記でコピーしたxcresultを開いて、原因を特定しましょう。

xcresult

最後に

Bitrise CLI使えば、ローカルで実行できるので素早く確認できて嬉しいですね。
この記事が、テストコードがローカルだと成功するのにBitrise上だと失敗する人の一助になれば幸いです。

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3