In contrasto con il mio previous question, proverò a soddisfare i miei requisiti.Come automatizzare test funzionali/di integrazione e rollback del database
io sto cercando di trovare un quadro di riferimento/metodologia/"cosa" che si adatterebbe il seguente:
- Capacità di scrivere un test automatico, preferibilmente scritto in Visual Studio, utilizzando C#.
- Il test dovrebbe guidare un browser web e interagire con SUT proprio come farebbe un utente.
- Il test deve essere in grado di configurare uno scenario di test in DB.
- Il test deve essere in grado di affermare che le interazioni dell'utente hanno avuto l'effetto previsto in DB.
- Al termine del test, dovrebbe essere in grado di ripristinare tutte le modifiche apportate in DB.
Il mio primo tentativo è stato quello di utilizzare il test NUnit per guidare Selenio (e Watin prima), ma ho affrontato un po 'un problema (controllare il link qui sopra) durante l'utilizzo di TransactionScope per ripristinare le modifiche del browser Selenio-driven fatto nel DB.
Qualcuno ha mai fatto qualcosa del genere nel "mondo reale"? Ho trovato alcuni riferimenti tramite Google, ma non sono riuscito a trovare esempi concreti su come implementarlo. Non ci sarebbero problemi se dovessi fare un test unitario. In tal caso TransactionScope sarebbe abbastanza.
Modifica: R. Harvey mi ha indirizzato alla domanda this, che è quasi identica alla mia situazione.
Tuttavia questa domanda è solo quasi uguale a. La mia applicazione fa parte di una famiglia di servizi, tutti che accedono allo stesso insieme di tabelle del database. La quantità di dati di test richiesti non consente un uso efficiente di drop/create-scripts, quindi esiste una soluzione alternativa per questo?
Stiamo utilizzando SQL Server 2005 e non sono molto esperto in database magic, quindi se c'è un modo per utilizzare lo scripting sql diverso da drop/create, allora quella potrebbe essere un'opzione.
Edit 2:
Sulla base delle risposte e qualche testa supplementari graffi, andremo per i database più leggeri per gli sviluppatori di eseguire unit, collaudo profilo dell'integrazione e funzionali. Questo ci consente di utilizzare gli script sql per impostare e abbattere il test.
Questo potrebbe aiutare: http://stackoverflow.com/questions/768944/rollback-database-after-integration-selenium-tests –
Sì, non ho problemi con il selenio in sé. Sembra essere un ottimo strumento! Il problema sta nel rollback delle modifiche apportate dal broser con selenio in db. – juarola
Oh mio Dio, come potrei mancarlo. Ho provato a fare ricerche approfondite prima di postare questo, ma lo scenario in quella domanda è quasi una replica. Aggiungerò un punto alla mia domanda per differenziarmi dalla loro situazione ... – juarola