XCTestを用いたターゲットテスト

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

フレームワークをUIテストに追加する

Not for use with personal data

テストでアクセシビリティスキャンの実行タイミングと場所を完全に制御したい場合は、ターゲットテストを実装するべきです。以下の手順に従って、UIテスト内でAxeDevToolsライブラリを設定し、アクセシビリティの問題を確認します。特定のコードのタイミングで明示的にaxe.scan()メソッドを呼び出します。

自動テスト

axeDevToolsXCUIを実行するにはXCTestが必要です。他のUIテストフレームワークもXCTestを使用してサポートされています。

テストのセットアップ

アクセシビリティテストに使用されるファイルには、axeDevToolsXCUIフレームワークをインポートします。

import axeDevToolsXCUI

テストクラス内にAxe DevToolsインスタンスを保持するオブジェクトを作成します:

var axe: AxeDevTools?

setUpまたはsetUpWithErrorメソッド内でフレームワークを初期化します。

テストセッションの開始

axe.deque.comでAPIキーを生成します。Axe Developer Hubに結果を投稿するには、startScanSessionを使用して、APIキーとDeveloper HubからのプロジェクトIDを使用します。

axe = try? AxeDevTools.startScanSession(apiKey: "<DEQUE_APIKEY>",
            projectId: "<DEVHUB_PROJECT_ID>")

結果をローカルに保存するだけでよい場合は、プロジェクトIDを含める必要はありません。

axe = try? AxeDevTools.startScanSession(apiKey: "<DEQUE_APIKEY>")

セットアップの例

import axeDevToolsXCUI
import XCTest

class MyUITests: XCTestCase {
    var axe: AxeDevTools?
    var app = XCUIApplication()

    override func setUpWithError() throws {
        axe = try AxeDevTools.startScanSession(apiKey: "<DEQUE_APIKEY>",
            projectId: "<DEVHUB_PROJECT_ID>")
        // Include the projectId to post results to axe Developer Hub (recommended)
        app.launch()
    }
}

オフラインライセンスキーによる接続

iOS SDKに対するオフライン自動化が利用可能ですが、認証目的でオフラインライセンスキーが必要です。Dequeの担当者またはサポートに連絡に連絡して、ライセンスキーの配布を調整してください。次に、以下のスニペットを使用してaxeDevToolsライブラリに接続します。ネットワークリクエストなしで最適化された性能を提供するオフラインSDKの利用に関する詳細はFAQをご参照ください。

import axeDevToolsXCUI_noauth
import XCTest

class MyUITests: XCTestCase {

    var axeDevTools: AxeDevTools?

    override func setUpWithError() throws {
        axeDevTools = AxeDevTools.loginWithLicenseKey("DEQUE_LICENSE_KEY")
    ...
}

次にすることは?

プロジェクトを作成し、axeDevToolsXCUIフレームワークを統合したので、モバイルアプリをスキャンする準備が整いました。スキャンに名前を付けたり、特定の結果を無視したり、カスタムルールを作成したり、スキャンにタグを付けたい場合は、スキャンする前にオプションとして設定をカスタマイズできます。