CI/CDでレポートを生成する
Not for use with personal data
Axe DevTools Reporterを使用することで、CI/CDパイプライン内で自己完結型のレポートを生成できるようになりました。
以下の基本的な手順に従って、AndroidまたはiOSのパイプラインにレポーターを統合してください。
Androidパイプラインへの統合
自動テストを設定する
-
結果をローカルに保存にあなたの自動化テストを更新し、それを使用してレポートを生成できるようにします。
-
以下のスクリプトを、
build.gradleファイルのandroidブロックの下に追加し、別のGradleタスク内ではないことを確認します。packageName変数にアプリケーションパッケージ名を追加します。このスクリプトは、自動実行から生成された結果をビルドフォルダのレポートディレクトリに移動します。
def reportsDirectory = "$buildDir/reports/androidTests/connected/axe"
def packageName = "your.app.package.name.here"
def createAndroidFolderDirectoryTask = task('createAndroidFolderDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'mkdir', '-p', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases'
}
def clearAndroidDirectoryTask = task('clearAndroidDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases'
}
def fetchAndroidFolderAxeReportsTask = task('fetchAndroidFolderAxeReportsTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'pull', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases', reportsDirectory
dependsOn {
createAndroidFolderDirectoryTask
}
finalizedBy {
clearAndroidDirectoryTask
}
doFirst {
new File(reportsDirectory).mkdirs()
}
}
def createDirectoryTask = task('createDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'mkdir', '-p', '/storage/emulated/0/Documents/AxeTestCases'
}
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
finalizedBy {
fetchAndroidFolderAxeReportsTask
}
}
def fetchAxeReportsTask = task('fetchAxeReportsTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'pull', '/storage/emulated/0/Documents/AxeTestCases', reportsDirectory
dependsOn {
createDirectoryTask
}
finalizedBy {
clearDirectoryTask
}
doFirst {
new File(reportsDirectory).mkdirs()
}
}
tasks.configureEach { task ->
if (task.name == 'connectedDebugAndroidTest') {
task.finalizedBy {
fetchAxeReportsTask
}
}
}レポートを生成する手順
- Dequeの資格情報を使用して、プライベートアーティファクトリAgoraにログインします。
- 「ようこそ、<your_email>」ドロップダウンから「プロフィールを編集」を選択します。
- 「IDトークンを生成」をクリックします。
- ダイアログボックスが開き、リファレントークンをコピーするオプションが表示されます。
- IDトークン用に明確な名前を作り、それを説明に追加します。以下の例では、
AGORA_IDENTITY_TOKENを名前として使用しています。 - 「次へ」を選択します。
- 次のダイアログボックスで、以下のスクリプトで使用するためにIDトークンをコピーしてください。自動化されたパイプラインの場合、このトークンを環境変数またはプラットフォームのプロジェクトシークレットで利用可能にするように検討してください。
note
アイデンティティトークンはダイアログ内でのみアクセス可能で、ダイアログを閉じた後は再度表示することはできません。このトークンは作成から11か月と30日後に失効します。
- テストやビルドを実行する前に、レポーターを取得してください。開始するためのスクリプトはこちらです:
# Compatible with a Mac runner on GitHub Actions. Make changes to the Reporter download type and location based on your pipeline requirements.
AGORA_IDENTITY_TOKEN='<YOUR_AGORA_IDENTITY_TOKEN>'
curl --compressed \
-H "X-JFrog-Art-Api: ${AGORA_IDENTITY_TOKEN}" \
"https://agora.dequecloud.com/artifactory/axe-devtools-reporter-cli/prod/4.11.1/pkgs/@axe-devtools/reporter-cli-macos" \
--output "/Users/runner/reporter"
chmod +x /Users/runner/reporter-
アプリをビルドしてテストを実行する
-
テストが終了したら、レポーターを実行し、結果JSONファイルのファイルパスを指定します。
DEQUE_RESULTS="../ContainingFolder"
/Users/runner/reporter ${DEQUE_RESULTS} "AxeReport" --format=html tip
--formatの出力形式をhtml、junitまたはcsvでカスタマイズします。
iOSパイプラインへの統合
自動テストをセットアップする
結果をローカルに保存にあなたの自動化テストを更新し、それを使用してレポートを生成できるようにします。
レポートを生成する手順
- Dequeの資格情報を使用して、プライベートアーティファクトリAgoraにログインします。
- 「ようこそ、<your_email>」ドロップダウンから「プロフィールを編集」を選択します。
- 「IDトークンを生成」をクリックします。
- ダイアログボックスが開き、リファレントークンをコピーするオプションが表示されます。
- IDトークン用に明確な名前を作り、それを説明に追加します。以下の例では、
AGORA_IDENTITY_TOKENを名前として使用しています。 - 「次へ」を選択します。
- 次のダイアログボックスで、以下のスクリプトで使用するためにIDトークンをコピーしてください。自動化されたパイプラインの場合、このトークンを環境変数またはプラットフォームのプロジェクトシークレットで利用可能にするように検討してください。
note
アイデンティティトークンはダイアログ内でのみアクセス可能で、ダイアログを閉じた後は再度表示することはできません。このトークンは作成から11か月と30日後に失効します。
- テストやビルドを実行する前に、レポーターを取得してください。以下に開始するための便利なスクリプトを示します:
AGORA_IDENTITY_TOKENY='<YOUR_AGORA_IDENTITY_TOKEN>'
curl --compressed \
-H "X-JFrog-Art-Api: ${AGORA_IDENTITY_TOKEN}" \
"https://agora.dequecloud.com/artifactory/axe-devtools-reporter-cli/prod/4.11.1/pkgs/@axe-devtools/reporter-cli-macos" \
--output "/Users/runner/reporter"
chmod +x /Users/runner/reporter-
アプリをビルドして、テストを実行します。
-
テストが終了したら、レポーターを実行し、結果JSONファイルのファイルパスを指定します。
DEQUE_RESULTS="../ContainingFolder"
/Users/runner/reporter ${DEQUE_RESULTS} "AxeReport" --format=html tip
--formatの出力形式をhtml、junitまたはcsvでカスタマイズします。
