スキャン結果をローカルに保存

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

スキャン結果をローカルに保存することで、JSON結果を使用してアクセシビリティメトリクスをさまざまな報告ツールに統合できます。また、HTMLレポートを作成して、メールやチャットを通じて共有し、テスト実行のアクセシビリティの健康状態をチームに通知できます。

ローカルへの保存は自動テスト内でのみサポートされています。

結果の保存と共有

以下のコードを使用して、テスト結果を実際の物理デバイスまたはエミュレーターに.jsonファイルとして保存します。"prefix"パラメーターは、保存したいファイル名の始まりになります。

axe.scan()?.saveResultToLocalStorage("prefix")

注: 結果を保存する前にスキャンの名前を変更することができます。

HTMLレポートとサマリーの生成

Axe DevTools Gradleプラグインを使用する際、各テストクラスに1回、generateHtmlReportAndSummaryの呼び出しを追加することで、端末上にレポートをローカルで生成します。このAPI呼び出しは、保存された結果ファイルをすべてフラッシュし、テストセッションの開始以降(または最後にメソッドを呼び出してから)蓄積されたすべてのスキャンを見てレポートを生成します。テストスイートが終了すると、Gradleプラグインは自動的にレポートをプロジェクトのbuild/reportsディレクトリに送信します。

note

結果を別のディレクトリに保存したい場合は、build.gradleファイルのプラグイン設定ブロックでそれを指定できます。

axeDevTools {
    axeMobileApiKey = "AXE_API_KEY"
    axeProjectId = "DEVHUB_PROJECT_ID"
    axeAutoScanMode = false
    axeHtmlReportPath = 
        "User/Desktop/reports/AxeDevToolsMobileResults"
    axeAccountUrl = "https://axe.deque.com"
class SampleTest {
    
    @Before
    fun before() {
        axe.startScanSession(API_KEY, PROJECT_ID, OPTIONAL_CUSTOM_URL)
    }

    @Test
    fun test_desired_screen() {
        // navigateToScreen(DESIRED_SCREEN.title)
        val results = axe.scan()?.serializedResult?.axeRuleResults
        // assertForRule(results, "FocusableText", 12, 8, 1)
    }
    
    companion object {
        val axe: AxeDevTools = AxeDevTools()
        
        @JvmStatic
        @AfterClass
        fun afterClass() {
            axe.generateHtmlReportAndSummary("optional_name")
        }
    }
}

これらのレポートには、スクリーンショットとルール違反のみが含まれます。ビュー階層、合格または未完了とマークされたルール、およびルール違反の詳細を含む詳細なレポートには、下記のセクションを参照してAxe DevTools Reporter CLIの利用方法を学んでください。

詳細な報告書用の結果の利用

スキャン結果を報告に活用するために、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にリクエストを送信してください。