Manipolazione scatole SWT dialogo durante l'esecuzione di test in modalità headless utilizzando SWTBOT
-
19-09-2019 - |
Domanda
Sono in esecuzione di un caso di test JUnit relativa alla mia domanda Eclipse che è stato costruito utilizzando SWT. Sto facendo il test GUI utilizzando SWTBot. Quindi, ecco il mio problema:
editor.bot().button("Make Excel Template").click();
Questo codice mi aiuta a generare un modello nella mia applicazione. Una volta fatto, si getta una finestra di dialogo modale con "OK", come un messaggio. Tuttavia, non posso ottenere SWTBot di trovare questa finestra di dialogo tasto / widget di /. Continuo a ricevere un 'WidgetNotFoundException'.
Qualcuno ha incontrato questo? il contenuto ufficiale sul sito SWTBot dice che le finestre di dialogo devono essere eseguiti in thread non-UI separati. Gli esempi forniti tuttavia, non sono molto informativo.
Apprezziamo il vostro aiuto!
Soluzione 2
@carstenlez - la soluzione funziona bene per le caselle JFace dialogo. La mia app, però, sta facendo uso di un MessageBox - che è una finestra di dialogo nativa. SWTBot non supporta le finestre di dialogo native, quindi sono praticamente fuori di opzioni.
Altri suggerimenti
In primo luogo si dovrebbe eseguire i test in un non-UI-Thread (se non già farlo). In secondo luogo è possibile utilizzare una condizione di attesa per la vostra finestra di dialogo modale a comparire dopo l'esecuzione l'azione che porterà la finestra di dialogo su:
bot.waitUntil(Conditions.shellIsActive("This is the title of the modal dialog "));
bot.button("OK").click();
Ciò ha risolto i nostri problemi di temporizzazione.