スキャン結果をローカルに保存
スキャン結果をローカルに保存することで、JSON結果を使用してアクセシビリティメトリクスをさまざまな報告ツールに統合できます。また、HTMLレポートを作成して、メールやチャットを通じて共有し、テスト実行のアクセシビリティの健康状態をチームに通知できます。
ローカルへの保存は自動テスト内でのみサポートされています。
結果の保存と共有
次のコードを使って、実際の物理デバイスまたはエミュレータ上にテスト結果を .json ファイルとして保存します。 "prefix" パラメータは、結果を保存したいファイル名の先頭部分になります。
axe.scan()?.saveResultToLocalStorage("prefix")注意: 結果を保存する前に スキャンの名前 を変更することができます。
報告のための結果の利用
JSONファイルをプロジェクトのビルドフォルダに移動することで、報告のためにスキャン結果を活用します。その後、 axe DevTools Reporter CLI を利用して、一連のスキャンからHTMLレポートを生成できます。また、プログラムで結果ファイルにアクセスして、内部報告ツールにアクセシビリティメトリクスを統合することもできます。
次のスクリプトをアプリの 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
}
}
}クラウドテストプラットフォームでのサポート
結果をローカルに保存することは、クラウドテストプラットフォームでは期待通りに動作しません。クラウドテストプラットフォームのサポートが必要な場合は、 helpdesk@deque.com または support.deque.comにリクエストを送信してください。
