CI/CDでレポートを生成する

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

axe DevTools Reporterを使用すると、継続的インテグレーション/継続的デプロイメント(CI/CD)パイプライン内で自己完結型のレポートを生成できます。

以下の基本的な手順に従って、AndroidまたはiOSのパイプラインにレポーターを統合してください。

Androidパイプラインへの統合

自動テストを設定する

  1. 自動テストを更新して、 結果をローカルに保存し、その結果を使用してレポートを生成できるようにします。

  2. 以下のスクリプトをアプリの 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
        }
    }
}

レポートを生成する手順

  1. プライベートアーティファクトリである AgoraにDequeの資格情報でログインしてください。
  2. 「ようこそ、<your_email>」ドロップダウンから「プロフィールを編集」を選択します。
  3. 「IDトークンを生成」をクリックします。
  4. ダイアログボックスが開き、リファレントークンをコピーするオプションが表示されます。
  5. IDトークンに独自の名前を作成し、その名前を説明に追加してください。以下の例では AGORA_IDENTITY_TOKEN を名前として使用しています。
  6. 「次へ」を選択します。
  7. 次のダイアログボックスで、以下のスクリプトで使用するためにIDトークンをコピーしてください。自動化されたパイプラインの場合、このトークンを環境変数またはプラットフォームのプロジェクトシークレットで利用可能にするように検討してください。
note

IDトークンはダイアログ内でのみアクセス可能で、ダイアログを閉じると再度表示することはできません。このトークンは作成から11ヶ月30日後に失効します。

  1. テストやビルドを実行する前に、レポーターを取得してください。開始するためのスクリプトはこちらです:
    # 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
  1. アプリをビルドしてテストを実行する

  2. テストが終了したら、レポーターを実行し、結果JSONファイルのファイルパスを指定してください。

    DEQUE_RESULTS="../ContainingFolder"
    /Users/runner/reporter ${DEQUE_RESULTS} "AxeReport" --format=html
tip

出力形式をカスタマイズする(--format)には htmljunit または csvを使用します。

iOSパイプラインへの統合

自動テストをセットアップする

自動テストを更新して、 結果をローカルに保存し、その結果を使用してレポートを生成できるようにします。

レポートを生成する手順

  1. プライベートアーティファクトリである AgoraにDequeの資格情報でログインしてください。
  2. 「ようこそ、<your_email>」ドロップダウンから「プロフィールを編集」を選択します。
  3. 「IDトークンを生成」をクリックします。
  4. ダイアログボックスが開き、リファレントークンをコピーするオプションが表示されます。
  5. IDトークンに独自の名前を作成し、その名前を説明に追加してください。以下の例では AGORA_IDENTITY_TOKEN を名前として使用しています。
  6. 「次へ」を選択します。
  7. 次のダイアログボックスで、以下のスクリプトで使用するためにIDトークンをコピーしてください。自動化されたパイプラインの場合、このトークンを環境変数またはプラットフォームのプロジェクトシークレットで利用可能にするように検討してください。
note

アイデンティティトークンはダイアログ内でのみアクセス可能で、ダイアログを閉じた後は再度表示することはできません。このトークンは作成から11か月と30日後に失効します。

  1. テストやビルドを実行する前に、レポーターを取得してください。以下に開始するための便利なスクリプトを示します:
    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
  1. アプリをビルドして、テストを実行します。

  2. テストが終了したら、レポーターを実行し、結果JSONファイルのファイルパスを指定します。

    DEQUE_RESULTS="../ContainingFolder"
    /Users/runner/reporter ${DEQUE_RESULTS} "AxeReport" --format=html
tip

出力フォーマットをカスタマイズする(--format)には htmljunit または csvを使用します。