Manipolazione scatole SWT dialogo durante l'esecuzione di test in modalità headless utilizzando SWTBOT

StackOverflow https://stackoverflow.com/questions/1907646

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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top