2009-06-22 19 views
6

Per diversi anni ho utilizzato uno strumento di test chiamato qmTest che mi consente di eseguire lo sviluppo di database test-driven per alcuni database Firebird. Scrivo un test per una nuova funzione (tabella, trigger, stored procedure, ecc.) Finché non fallisce, quindi modifica il database fino al termine del test. Se necessario, faccio più lavoro sul test fino a quando fallisce di nuovo, quindi modifico il database fino a quando il test non ha superato. Una volta che il test per la funzionalità è completo e passa il 100% del tempo, lo salvi in ​​una suite di altri test per il database. Prima di passare a un altro test o una distribuzione, eseguo tutti i test come una suite per assicurarmi che nulla sia rotto. I test possono avere dipendenze da altri test e i risultati vengono registrati e visualizzati in un browser.Test-First strumento di sviluppo per SQL Server 2005?

Niente di nuovo qui, ne sono sicuro.

Il nostro negozio punta alla standardizzazione su MSSQLServer e voglio utilizzare la stessa procedura per lo sviluppo dei nostri database. Qualcuno sa di strumenti che consentono o incoraggiano questo tipo di sviluppo? Credo che il Team System lo faccia, ma non lo possediamo a questo punto, e probabilmente non lo faremo per un po 'di tempo.

Non sono contrario agli script, ma gradirei un ambiente più grafico.

Qualche suggerimento?

risposta

2

Team System è probabilmente la soluzione più conosciuta, ma è anche possibile provare TSQLUnit (SourceForge).

Non l'ho usato da solo, ma this article fa un lavoro decente di introduzione.

1

Su progetti in cui non ho avuto accesso al sistema di team per db pro, ho usato gli script sql combinati con msbuild e la libreria di attività sdc per msbuild (http://www.codeplex.com/sdctasks). Lo script msbuild richiede a un'attività sdc di eseguire i miei script sql in un ordine particolare (ad esempio crea db, crea tabelle ecc.) E su una particolare stringa di connessione. Gli script controllano sempre se esiste un oggetto e prima eseguono il teardown e lo ricostruiscono.

Gli script sql e msbuild che inserisco in un progetto di database di Visual Studio regolare (che non fa nulla di speciale, quindi è possibile scegliere di utilizzare un semplice progetto vuoto), quindi tutto è controllato all'origine.

con un set di script di questo tipo, è possibile impostare un nuovo database per ogni esecuzione di test. È quindi possibile utilizzare gli script di inserimento per popolarlo con dati ed eseguire test di unità contro di esso.

Questi script sono utili anche per la creazione di banche dati da zero in ambienti diversi (DEV/TST/QUA/...)

1

ho potuto adeguatamente apply a test driven development style against SQL Server databases using TSQLUnit. Ho seguito lo stesso flusso che hai descritto scrivendo prima un test di unità sproc che non riesce e quindi apportando le modifiche necessarie per il test. Nel corso del tempo, ho anche creato una serie di test quando eseguito, convalidato, che non si rompeva nulla mentre si effettuavano nuove modifiche.

Ci sono stati alcuni punti difficili (comprese le estreme difficoltà nella scrittura dei test per gli sproc esistenti) ma ha funzionato in particolare per le modifiche dello schema.Tuttavia, consiglierei di guardare a T.S.T. the T-SQL Test Too1 che a differenza di TSQLUnit (I had to roll my own) ha il supporto integrato per le asserzioni.

+0

+1 Grazie per avermi segnalato T.S.T., sembra molto buono. –

Problemi correlati