10

Quindi ho un'applicazione che ho ereditato e voglio creare una suite di test automatizzata attorno ad essa. L'applicazione non è stata progettata pensando alla testabilità e il codice è una "grande palla di fango". Il mio piano era di utilizzare un framework di test di UI Automation e creare una serie di test a livello dell'interfaccia utente fino a quando non avessi una copertura sufficiente per permettermi di avviare il refactoring con sicurezza e introdurre alcune cuciture nel codice per migliorare testabilità e design.Framework test UI + integrazione continua?

Si tratta di un'applicazione .NET WinForms, e le due quadri io sappia sono:

NUnitForms

e

Project White

Da quello che ho letto entrambi i quadri posa problemi quando si tenta di eseguire come parte di una build automatizzata (Continuous Integration) a causa del fatto che la maggior parte dei prodotti CI viene eseguita come servizio Windows e se l'interfaccia utente utilizza le finestre di dialogo modali, l'applicazione morirà in modo orribile Morte. Sto usando CruiseControl.Net come il mio strumento CI.

Qualcuno ha qualche suggerimento per aggirare questo problema? Un quadro alternativo da utilizzare che possa migliorare la situazione?

Grazie,

Dylan

risposta

2

non ho ancora provato, ma c'è il UI Automation Framework da Microsoft:

+2

Penso che questo sia quello su cui è costruito il Bianco. http://white.codeplex.com/Wiki/View.aspx?title=Layers –

3

Si può effettivamente eseguire il cruise control tramite la console app in modo che possa avere accesso desktop interattivo. Non si ripristinerà automaticamente se il server viene riavviato o si blocca, ma almeno lo puoi fare.

Detto questo, l'approccio che la maggior parte delle persone utilizza con i test UI automatizzati (winforms, wpf o web) consiste nell'eseguire tutti i test non interattivi tramite il build server. Una volta superati questi test, distribuiscono l'applicazione in un ambiente di test e attivano manualmente un'esecuzione di test contro la versione di codice appena creata.

Questo dà alle persone la possibilità di reimpostare l'ambiente di test (importante per il test dell'interfaccia utente) e di verificare che la nuova versione dell'applicazione sia stata compilata correttamente e che siano passati tutti i test delle unità. Dopo tutto, non ha senso eseguire i test dell'interfaccia utente se sai che i test dell'unità sono caduti. :-)

+0

Giusto, ma nella mia situazione non ho altri test. E qualsiasi suite di test che creo, voglio assolutamente che venga eseguita su base automatizzata, altrimenti corriamo il rischio di far "marcire" i test e diventare inutili quando si rompono e nessuno li guarda ... Buone informazioni sull'app console cc.net –

1

Abbiamo eseguito i test di accettazione dell'integrazione continua in modalità console anziché come servizio Windows in un PC virtuale connesso. Questo ha funzionato per noi.

Problemi correlati