2011-08-16 16 views
8

Abbiamo vari sistemi in cui la maggior parte della nostra logica aziendale si trova all'interno di stored procedure. Abbiamo bisogno di scrivere alcuni test che fondamentalmente controllano i dati sono cambiati nel modo previsto quando è stato eseguito un processo memorizzato. Mi piacerebbe anche qualche test di schema di base, parametri di input e output ecc.Test schema e procedura memorizzata utilizzando Nunit

Ho esaminato i test di database DBfit e MSTest e al momento non sono venduto su nessuno dei due. Ho usato NUnit per testare codice C# e si chiedeva se si utilizza Nunit sarebbe un buon approccio alternativo per testare stored procedure dall'interno .net (magari usando EF4)

Qualcosa di simile

  • dati di configurazione
  • Controllare i dati
  • Execute proc
  • controllare dati è cambiato

questo sarebbe un metodo adeguato di test procs memorizzati? Ci sono altri metodi migliori?

Opinioni e commenti sarebbe apprezzato :-)

EDIT: mi piacerebbe anche integrare questo nel nostro processo CI utilizzando TeamCity

risposta

0

Forse AnyDbTest potrebbe essere qualcosa per voi per quanto riguarda i test di unità.

Per la verifica dello schema e del codice DB (SP ecc.), Utilizzare uno DB diff tool di vostro gradimento. O forse dare un'occhiata allo bsn ModuleStore, che prova ad affrontare il controllo delle versioni, l'aggiornamento e la modularizzazione dei database di SQL Server.

1

Sì, è possibile eseguire il test all'interno di VS e dell'ambiente di test dell'unità. Tuttavia, si potrebbe anche voler esaminare tSQL una soluzione di testing unitario per SQL Server. http://tsqlt.org/user-guide/

Red-gate fornisce un add-on SSMS per supportare tale approccio. http://www.red-gate.com/products/sql-development/sql-test/

Trovo che le parti di SQL testing e di ottimizzazione delle prestazioni dell'unità possano essere eseguite indipendentemente dai test delle unità .NET. Sono d'accordo che l'integrazione con il proprio server CI e la segnalazione di successo/fallimento attraverso il meccanismo di segnalazione del server CI è un obiettivo degno.

+1

tSQLt supporta server CI, come TeamCity. Dave Green lo spiega nel suo articolo: https://www.simple-talk.com/sql/sql-tools/using-sql-test-database-unit-testing-with-teamcity-continuous-integration/ (scorri verso il basso per a metà strada dove parla del formato XML JUnit) –

Problemi correlati