Upgrade to Pro — share decks privately, control downloads, hide ads and more …

詳解xcresult.pdf

Shingo Tamaki
September 28, 2021

 詳解xcresult.pdf

事例を元にxcresultとxcresuttoolの使い方について解説しました。

このスライドはこの記事を元にしています。
https://engineering.mercari.com/blog/entry/20201218-61f7110851/

Shingo Tamaki

September 28, 2021
Tweet

More Decks by Shingo Tamaki

Other Decks in Technology

Transcript

  1. 3 Role: Merpay iOS EM 
 Career : KeywareSolutions→Techfirm→Origami→Merpay 


    Hobby : bouldering󰩥/airsoft🔫/martial arts(karate/kickboxing)🥊🤛
 玉城信悟

  2. 12 xcresulttool get getサブコマンドでxcresult内の構 造化された情報をjson形式で出力 可能です。 ルートの構造である ActionsInvocationRecordは 以下のようなプロパティを持ってい ます。

    - metadataRef: metaデータへ のリファレンス - metrics:エラー・警告の件数 やテストの失敗件数などのメ トリクス情報 - issues: エラー・警告、テスト の失敗に関するサマリ情報 - actions: 実行の詳細情報
  3. 13 xcresulttool formatDescription formatDescriptionサブコマンドで xcresultの内部構造で定義されている型を 調べる事が出来ます。 getサブコマンドで取得した jsonを読み解く 際に使ったり、xcresultから取り出したい情 報がどのような構造でどのような階層に格

    納されているかを調べるのに使えます。 ⚠ それぞれの型の定義は照会出来ます が、それがどのような情報を持っているかと いった説明は出ません。型名、プロパティ名 から推測するのと、実際に出力した xcresultのファイルから読み取るしかない です。
  4. 14 xcresultの内部に持つ型 - Value: プリミティブな値 (Bool/Int/Double/String/Dateなど)を表す - Array: 配列であることを表す -

    Object: プロパティや親オブジェクトを持てたりす る。 - Reference: 他のオブジェクトへの参照型 Object「TestFailureIssueSummary」の例
  5. 16 連携したい情報を整理する ① ② ①UIテストコードとTestRail 上の TestCase IDを紐づける⛓ ②UIテストの実行ログを送り たい

    ③テスト失敗時は失敗した 画面のスクリーンショットを添 付したい ④テストの成功・失敗などの ステータスを取得する ③
  6. 20 ④テストの成功・失敗などのステータスを取得する { "_type": { "_name": "ActionTestMetadata", "_supertype": {…} },

    "duration": {…}, "identifier": { "_type": {…}, "_value": "MerpayEasypayTest/sampleTest( )" }, "name": {…}, "summaryRef": {…}, "testStatus": { "_type": {…}, "_value": "Failure" } }, ActionTestMetadataの testStatusからテストの結果を取 得可能