Come risolvere dei problemi
Come risolvere i problemi comuni che si verificano quando si utilizza axe Developer Hub
Il Watcher supporta solo Chrome
Sebbene il sito web axe Developer Hub supporti diversi browser, il pacchetto @axe-core/watcher supporta solo Google Chrome. Ad esempio, se si prova a utilizzare il browser Electron di Cypress per effettuare dei test, verrà visualizzato un errore. Per maggiori informazioni sul software supportato con axe Developer Hub e @axe-core/watcher, consulta [Requisiti di sistema].(dh-system-requirements)
Esecutori di test paralleli
Se la tua suite di test utilizza più test runner che vengono eseguiti in parallelo, devi assicurarti che ogni test runner utilizzi lo stesso buildID non-null. In caso contrario, i risultati di ciascun test runner sovrascriveranno i risultati degli altri test runner per lo stesso commit SHA.
Di solito, imposti buildID nell' AxeConfiguration della suite di test. Per ulteriori informazioni sull'utilizzo di test runner paralleli con diverse piattaforme CI/CD, vedere buildID nel Riferimento API.
Errori di accessibilità duplicati o conteggio errato di nuovi problemi
Se il tuo sito web utilizza ID dinamici o nomi di classe che cambiano ogni volta che la pagina viene aggiornata, probabilmente visualizzerai errori di accessibilità duplicati, in particolare problemi contrassegnati come nuovi quando i test precedenti presentano lo stesso problema sullo stesso elemento. (Axe Developer Hub utilizza ID e classi per identificare lo stesso elemento tra un'esecuzione e l'altra dei test.) Per risolvere questo problema, è necessario impostare la proprietà ascendenza nell'oggetto opzioni di esecuzione nella configurazione su true. L'esempio seguente mostra come impostare l'opzione nella configurazione:
axe: {
runOptions: {
ancestry: true
}
}
Per ulteriori informazioni, vedere runOptions .
Vecchia versione di @axe-core/watcher
Se stai utilizzando la versione 3.18.0 o una precedente di @axe-core/watcher, riceverai questo messaggio di avviso:
Axe Developer Hub ora aderisce alle impostazioni definite in axe Configuration e le esecuzioni di test create dalle versioni di @axe-core/watcher 3.18.0 o precedenti generano sessioni che non erano a conoscenza delle impostazioni globali in axe Configuration. Dovresti aggiornare il pacchetto @axe-core/watcher e rieseguire i test per creare sessioni che seguano la configurazione axe della tua azienda. Vedere Utilizzo delle configurazioni globali.
Timeout del metodo del controller
Riceverai un messaggio simile al seguente se le chiamate ai Metodi del controller (definiti nella Controller
classe base astratta come analyze
(), flush
(), start
() e stop
()) o ai Comandi personalizzati Cypress scadono:
Error: Watcher could not send results to the server. To resolve this problem, adjust your `timeout.flush` property within your configuration or see https://docs.deque.com/developer-hub/dh-troubleshooting for more troubleshooting.
Il metodo specificato (in questo caso, il metodo Controller
()) ha richiesto più tempo del tempo predefinito per essere completato flush
ed è scaduto. Puoi modificare l'ora predefinita aggiungendo un oggetto alla tua configurazione: timeout
axe: {
timeout: {
flush: 10000
}
}
Questi valori di timeout sono indipendenti dal framework di test utilizzato e potrebbe essere necessario aumentare i valori di timeout anche per quel framework.
Per ulteriori informazioni, vedere Interfaccia Timeouts
e timeouts
. I valori di timeout predefiniti sono mostrati nella tabella sotto l'interfaccia Timeouts
.
Risultati non visualizzati
Se hai eseguito la tua suite di test e non vengono visualizzati risultati in axe Developer Hub per un determinato progetto, la causa potrebbe essere una delle seguenti:
Non si configura axe Watcher
La suite di test modificata deve richiamare la funzione di configurazione appropriata per il framework di test prima di eseguire i test. Se axe Watcher non viene configurato correttamente, potrebbe essere difficile identificare questo problema. Ad esempio, potresti riscontrare un problema simile a uno dei seguenti:
- La tua suite di test potrebbe fallire con un errore di promessa non restituita.
- La tua suite di test potrebbe fallire silenziosamente.
- La suite di test potrebbe andare in timeout.
Consulta le [istruzioni] di configurazione(dh-watcher-intro#instructions-for-modifying-your-test-suite) per esempi di configurazione per il framework di test del tuo linguaggio e browser.
Non invio dei risultati
È necessario chiamare la funzione flush() (o il comando personalizzato axeWatcherFlush() in Cypress) per inviare i risultati raccolti ai server di Deque, in modo che possano essere presentati sul sito Web di axe Developer Hub. Solitamente, si chiama la funzione flush() nel cleanup hook della piattaforma di automazione.
Ad esempio, nel file support/e2e.js in Cypress aggiungi la chiamata a afterEach():
// Flush axe-watcher results after each test.
afterEach(() => {
cy.axeWatcherFlush()
})
Uso dell'opzione --incognito
Non è possibile utilizzare l'opzione della riga di comando --incognito con Chrome; in caso contrario, i test falliranno silenziosamente. Se utilizzi la modalità di navigazione in incognito per evitare di scrivere i file memorizzati nella cache sul disco (i file memorizzati nella cache vengono conservati nella memoria solo in modalità di navigazione in incognito), utilizza invece i metodi di caching della tua suite di test.
Non impostando la variabile di ambiente richiesta
Gli esempi nell'axe Developer Hub repository degli esempi su GitHub utilizzano una variabile d'ambiente per impostare la chiave API, API_KEY.
È possibile impostarlo nell'ambiente o specificarlo sulla riga di comando durante l'esecuzione dei test.
Esecuzione del test troppo velocemente
I test potrebbero essere eseguiti troppo rapidamente, scaricando la pagina e liberandone le risorse prima che Watcher possa analizzarla. Per risolvere questo problema, puoi aggiungere un ritardo alla fine del test per dare il tempo di analizzare la pagina.
Ad esempio, in Cypress, è possibile aggiungere un ritardo di 10 secondi (10.000 millisecondi) con il metodo cy.wait():
describe('Visitor', () => {
it('should visit example.com', () => {
cy.visit('https://www.example.com')
cy.wait(10000); })
})
Chiave API mancante o non valida
Una chiave API non valida o mancante viene visualizzata come un file di configurazione non valido in Cypress. Lo stack trace rivelerà se il dato non è valido o mancante. Una chiave mancante si traduce nella seguente conseguenza:
AssertionError [ERR_ASSERTION]: API key is required
at validateApiKey ...
(Per brevità sono state eliminate molte righe dello stack trace.)
Una chiave non valida genera la seguente traccia dello stack (ridotta):
Error: Server responded to https://axe.deque.com/api/api-keys/test/validate/axe-devtools-watcher with status code 404:
{"error":"Invalid API key"}
at Response.getBody
...
Guida
Se non riesci a risolvere il problema, inviaci un'e-mail(mailto:helpdesk@deque.com) in modo che possiamo assisterti.