Sto scrivendo un programma che imposta una GUI per avviare script di test JUnit che utilizzano Selenium WebDriver in Java. La GUI imposta una coda di test JUnit in background (o almeno così credo). Sulla GUI, voglio utilizzare un pulsante "stop test" che fermerà tutti i futuri test di JUnit che sono ancora in coda dall'esecuzione, ma voglio farlo in maniera tempestiva. Al momento ho un codice che interromperà tutti i test, ma se 190 test sono in coda, occorrono fino a 1-2 secondi per interrompere un singolare test in coda dall'esecuzione che non è tempestivo, né consumer friendly se si considerano molti test :C'è un modo per fermare i test JUnit in coda e mantenere ancora in esecuzione JavaFX Gui?
Field field = JUnitCore.class.getDeclaredField("fNotifier");
field.setAccessible(true);
RunNotifier runNotifier = (RunNotifier) field.get(runner);
runNotifier.pleaseStop();
c'è un modo per cancellare la coda o del test JUnit o un thread specifico per chiudere che si fermerà l'esecuzione di script senza uccidere la GUI?
Avevo provato a farlo in una data precedente e non riuscivo a individuare correttamente i thread nel codice che eseguivano i test JUnit a meno che non avessi ucciso un thread necessario per l'esecuzione della GUI. –
Cosa succede se si riavvia la GUI e si elimina quella vecchia. MainGuiClass.this.dispose(); new MainGuiClass(); O qualcosa del genere –
Darò un'occhiata a questo, ma preferibilmente, mi piacerebbe trovare un modo per mantenere la GUI attiva e funzionante fino a quando l'utente decide di voler interrompere i test. La GUI richiede 10 secondi per essere caricata, quindi non sarebbe molto facile da usare. –