Soporte de Objective-C
Sigue el pasos para obtener el marco de trabajo axeDevToolsXCUI. Todas las características disponibles en esta página son totalmente compatibles con Objective-C. Importa el encabezado en cualquier archivo en el que planees usar el marco XCUI:
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>Utiliza el método setUp en tus UITests para inicializar un objeto AxeDevTools que interactúe con las características disponibles. Genera una clave API en axe.deque.com. Si prefieres, también puedes autenticarte con un nombre de usuario y contraseña.
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools startScanSessionWithApiKey:@"API_KEY"
projectId:@"DEVHUB_PROJECT_ID"
error:&error];
}Realizar un Escaneo
Para ejecutar un escaneo en una pantalla de tu aplicación o en cualquier XCUIElement de tu aplicación, crea un nuevo caso de prueba dentro de tus UITests y llama al método run dentro de tu objeto AxeDevTools:
- (void)testAccessibilityOfFirstScreen {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
NSError* error;
AxeResult* result = [axeDevTools runOnElement:app error:&error];
XCTAssertEqual(result.failures.count, 0); // This allows you to assert if there are accessibility failures
}Enviar Escaneo al Panel de Control
Una vez que tengas el escaneo, puedes enviarlo al Panel de Control llamando al método postResult desde el objeto AxeDevTools:
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];Si no deseas etiquetar tu escaneo, puedes pasar un arreglo vacío al parámetro withTags. Si deseas darle un nombre personalizado al escaneo, puedes pasarlo al parámetro withScanName.
Ejemplo Completo
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>
#import <XCTest/XCTest.h>
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools loginWithAPIKey:@"API_KEY"
toServer:@""
error:&error];
}
- (void)testAccessibilityOfFirstScreen {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
NSError* error;
AxeResult* result = [axeDevTools runOnElement:app error:&error];
XCTAssertEqual(result.failures.count, 0);
[axeDevTools postResult:result
withTags:@[@"Build 10.6.1"]
withScanName:@""
error:&error];
}
@endFunciones
Ignorando Vistas
Una vez que hayas iniciado sesión, usa el objeto AxeDevTools para ignorar reglas para vistas específicas. Puedes ignorar todas las vistas de una clase específica o ignorar una vista con un Identificador de Accesibilidad específico:
NSDictionary* ignoreRules = @{ @"UILabel": @[@"InScrollView"], // ignore InScrollView for all UILabels
@"LoginScreen.Button": @[@"TouchTargetSize"] // ignore TouchTargetSize for the view with this accessibility id
};
[[axeDevTools configuration] ignoreWithRulesFor: ignoreRules];Ignorando Reglas
Una vez que hayas iniciado sesión, usa el objeto AxeDevTools para ignorar cualquier regla de un escaneo completo:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];También puedes reañadir reglas a la configuración cambiando el bool de true a false:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];Guardar Escaneos Localmente
Guarda los resultados localmente para utilizar el Axe DevTools Reporter CLI y generar un informe ejecutivo a partir de un conjunto de escaneos dentro de tu canal de CI/CD.
Un escaneo se guardará como un archivo .json. Guardar escaneos localmente solo es compatible dentro de las pruebas automatizadas.
Si no se especifica la ruta y el nombre del archivo, los resultados se llamarán "(APPID)-(CURRENT_SCREEN_TITLE).json" y se guardarán en una carpeta llamada "AxeDevToolsResults" dentro de tu carpeta Usuario.
Una vez que hayas iniciado sesión, utiliza el objeto AxeDevTools para guardar tu escaneo como un archivo JSON. Para usar la ruta y el nombre de archivo predeterminados, envía cadenas vacías a los parámetros:
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];