杏z学習帳

Swiftを中心にFlutterやらUnityなどに手を出してます

XCUITestの失敗時にスクリーンショットが抽出されていない(2020/03/30)

[Bitrise]XCUITestの失敗時にスクリーンショットが抽出されていない

ひさしぶりに(?) Bitrise のお話を。

UITest のスクリーンショットが抽出できてない

諸事情により(?)ずっと延ばし延ばしにしていた Xcode 11 に先日したのですが、
どうもそれから Bitrise の UITest で失敗したときにスクリーンショットが抽出されていないという現象が発生したのです。
ログはあるのでまーわかるといえばわかるのですが、UITest なのでスクリーンショットがあったほうが良いのは良いのでなんとか欲しいところです。

まぁ今更 Xcode 11 にしたので何番煎じの話かわからないですが(笑)

解決策

これは公式にも現状できないということになってるらしく(一時的なものかはわかりませんが)、
Xcode Test for iOS ステップの Export UITest Artifacts のところには注意事項が書かれています

NOTE: works only with Xcode version < 11.

ということで出来ないのは設定が悪いでも、たまたまというわけでもないことがわかります。

xcparse ステップを追加して抽出する

Xcode 11 が登場して随分経っているので何かしらの回避策とかあるだろうなと思い、ググってみると以下のようなプルリクを発見しました。

ありがたい!!

使い方なんかはリポの README に画像つきでされてるのでそれを見たら大丈夫でしょう。

とはいえ README みる必要ないぐらい簡単で、基本的には xcparse ステップを追加するだけですが。
注意事項としては Run if previous Step failed のチェックをいれることですね。
これいれとかないと、テスト失敗したときにスキップされちゃうので意味がない(笑)

ということで、このステップを追加してちゃんとテストコケてみたら(笑)、無事抽出されていました!

スクショエクスポート!

これでテストコケまくっていけますね!??

参考