Compatibilidad con Objective-C
Siga los pasos para obtener el marco axeDevToolsXCUI. Todas las funciones disponibles en esta página son totalmente compatibles con Objective-C. Importa el encabezado en cualquier archivo en el que planea utilizar el marco XCUI:
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>
Utilice el setUp
método en sus UITests para inicializar un AxeDevTools
objeto para interactuar con las funciones disponibles. Genere una clave API en axe.deque.com. Si lo prefiere, puede autenticarse con un nombre de usuario y una contraseña.
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools loginWithAPIKey:@"API_KEY"
toServer:@""
error:&error];
}
Ejecutar un escaneo
Para ejecutar un escaneo en una pantalla de su aplicación o en cualquier XCUIElement de su aplicación, cree un nuevo caso de prueba dentro de sus UITests y llame al run
método dentro de su AxeDevTools
objeto:
- (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 tenga el escaneo, puede enviarlo al Dashboard llamando al postResult
método desde el AxeDevTools
objeto:
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];
Si no desea etiquetar su escaneo, puede pasar una matriz vacía al withTags
parámetro. Si desea darle al escaneo un nombre personalizado, puede pasarlo al withScanName
parámetro.
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];
}
@end
Características
Ignorando vistas
Una vez que haya iniciado sesión, use el objeto AxeDevTools
para ignorar las reglas para vistas específicas. Puede 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];
Ignorar Reglas
Una vez que haya iniciado sesión, use el objeto AxeDevTools
para ignorar cualquier regla durante todo el análisis:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];
También puedes volver a agregar reglas a la configuración cambiando bool
de true
a false
:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];
Guardar escaneos localmente
Guarde los resultados localmente para utilizar la axe DevTools Reporter CLI para crear un informe ejecutivo a partir de un conjunto de escaneos dentro de su canalización de CI/CD.
Un escaneo se guardará como un .json
archivo. Guardar escaneos localmente solo es posible dentro de pruebas automatizadas.
Si no se especifican la ruta ni el nombre del archivo, los resultados se nombrarán "(APPID)-(CURRENT_SCREEN_TITLE).json"
y se guardarán en una carpeta llamada "AxeDevToolsResults"
dentro de su carpeta Usuario .
Una vez que haya iniciado sesión, utilice el objeto AxeDevTools
para guardar su escaneo como un archivo JSON. Para utilizar la ruta y el nombre de archivo predeterminados, envíe cadenas vacías a los parámetros:
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];