メインコンテンツまでスキップ

テストケース名に合わせた添付ファイルの命名

スクリーンショット、録画、ログに、それらを生成したテストケースの名前を付けると、BitriseはTestsタブで該当するテストの下にそれらを表示します。

Stepのバージョン

これには、Deploy to Bitrise.io Stepのバージョン2.26.0以降が必要です。Export test results to Test Reports Stepを使用する場合は、バージョン1.3.0以降である必要があります。

次の作業が必要です。

ファイル名の構造についてClick to copy link​

ファイル名は、次の構造にします。

<classname>__<name>[__run<k>]__<label>.<ext>

たとえば、com.example.LoginTest__emptyState__1.pngです。

正しいファイル名にするには、次の点に注意してください。

  • JUnit XMLの<testcase>要素からclassnameとnameをコピーし、" * / : < > ? \ |のいずれかの文字を_に置き換えます。BitriseはJUnit XML内の名前にも同じ置換を適用するため、どちらの表記でも一致します。
  • 必ずカウンターなどのラベルを付けます。ラベルに__を含めることはできず、_で始めることもできません。
  • 同じテストを複数のデバイスで実行する場合は、ラベルにデバイスを含めます(例: api34_1)。含めない場合、同じ名前のファイルはスキップされ、添付ファイルは表示されません。
  • 同じテストケースの後続の実行にファイルを添付するには、ラベルの前に__run2、__run3などを追加します。

テストツールの設定Click to copy link​

命名の設定は、テスト構成で一度だけ行います。次の例は、一般的なテストツールでの設定方法を示しています。

Espressoのチェックが失敗したときにスクリーンショットを撮るRunListenerを登録します。

// app/build.gradle.kts
android {
defaultConfig {
testInstrumentationRunnerArguments["listener"] = "com.example.testing.BitriseScreenshotListener"
testInstrumentationRunnerArguments["useTestStorageService"] = "true"
}
}

dependencies {
androidTestUtil("androidx.test.services:test-services:1.6.0")
}
// app/src/androidTest/java/com/example/testing/BitriseScreenshotListener.kt
package com.example.testing


private fun clean(value: String) = value.replace(Regex("""["*/:<>?\\|]"""), "_")

class BitriseScreenshotListener : RunListener() {
override fun testStarted(test: Description) {
val default = DefaultFailureHandler(InstrumentationRegistry.getInstrumentation().targetContext)
Espresso.setFailureHandler { error, viewMatcher ->
val screen = Resources.getSystem().displayMetrics.run { "${widthPixels}x$heightPixels" }
val name = "${clean(test.className)}__${clean(test.methodName)}__api${Build.VERSION.SDK_INT}_${screen}_failure"
takeScreenshot().writeToTestStorage(name)
default.handle(error, viewMatcher)
}
}
}

通常のJUnitアサーションでは、スクリーンショットは撮影されません。

添付ファイルのエクスポートClick to copy link​

Stepのバージョン

これには、Deploy to Bitrise.io Stepのバージョン2.26.0以降が必要です。Export test results to Test Reports Stepを使用する場合は、バージョン1.3.0以降である必要があります。

Deploy to Bitrise.io Stepは常に必要です。正しい名前を付けた添付ファイルを、テスト結果と一緒にデプロイします。そのほかに必要なものは、テストを実行するStepによって異なります。

  • 公式のBitriseテストSteps: 追加の設定は不要です。Deploy to Bitrise.io Stepが、テスト結果と一緒に添付ファイルをエクスポートします。Stepsの一覧については、公式のBitriseテストStepsからの結果のデプロイを参照してください。
  • Other Steps(Scriptやnpm Stepsなど): テストを実行するStepの後に、Export test results to Test Reports Stepを追加します。このStepは添付ファイルを見つけて、Deploy to Bitrise.io Stepがデプロイする場所に移動します。Test result base pathインプットには、テスト結果と添付ファイルの両方を含むフォルダー(たとえばapp/build/)を設定します。Export test results to Test Reports Stepの使い方を参照してください。

添付ファイルが表示されない場合のトラブルシューティングClick to copy link​

添付ファイルが表示されない場合は、ビルドログを確認してください。

  • Export test results to Test Reports Stepは、複数のテストまたはファイルに一致する名前、無効な__run番号、またはラベルがない名前について警告をログに出力します。そのほかのスキップされたファイルは、詳細ログを有効にした場合にのみ表示されます。Enable verbose logging?インプットをyesに設定してください。
  • Deploy to Bitrise.io Stepは、レポート内のファイルのうち、テストケースにリンクできないものすべてについて警告をログに出力します。