CI/CDでレポートを生成する
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
}
}
}レポートを生成する手順
- プライベートアーティファクトリである AgoraにDequeの資格情報でログインしてください。
- 「ようこそ、<your_email>」ドロップダウンから「プロフィールを編集」を選択します。
- 「IDトークンを生成」をクリックします。
- ダイアログボックスが開き、リファレントークンをコピーするオプションが表示されます。
- IDトークンに独自の名前を作成し、その名前を説明に追加してください。以下の例では
AGORA_IDENTITY_TOKENを名前として使用しています。 - 「次へ」を選択します。
- 次のダイアログボックスで、以下のスクリプトで使用するためにIDトークンをコピーしてください。自動化されたパイプラインの場合、このトークンを環境変数またはプラットフォームのプロジェクトシークレットで利用可能にするように検討してください。
IDトークンはダイアログ内でのみアクセス可能で、ダイアログを閉じると再度表示することはできません。このトークンは作成から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出力形式をカスタマイズする(--format)には html、 junit または csvを使用します。
iOSパイプラインへの統合
自動テストをセットアップする
自動テストを更新して、 結果をローカルに保存し、その結果を使用してレポートを生成できるようにします。
レポートを生成する手順
- プライベートアーティファクトリである AgoraにDequeの資格情報でログインしてください。
- 「ようこそ、<your_email>」ドロップダウンから「プロフィールを編集」を選択します。
- 「IDトークンを生成」をクリックします。
- ダイアログボックスが開き、リファレントークンをコピーするオプションが表示されます。
- IDトークンに独自の名前を作成し、その名前を説明に追加してください。以下の例では
AGORA_IDENTITY_TOKENを名前として使用しています。 - 「次へ」を選択します。
- 次のダイアログボックスで、以下のスクリプトで使用するためにIDトークンをコピーしてください。自動化されたパイプラインの場合、このトークンを環境変数またはプラットフォームのプロジェクトシークレットで利用可能にするように検討してください。
アイデンティティトークンはダイアログ内でのみアクセス可能で、ダイアログを閉じた後は再度表示することはできません。このトークンは作成から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出力フォーマットをカスタマイズする(--format)には html、 junit または csvを使用します。
