2012-07-16 3 views
1

Je souhaite exécuter les tests unitaires de teambuild (plusieurs fois) sur différentes bases de données, par ex. Je veux tester mes compilations de build, puis lancer la même suite de tests sur SQLServer, puis Oracle, etc. Je suis assez sûr que je pourrais faire quelque chose de maladroit comme construire/tester contre le premier fichier de configuration puis construire/tester contre le deuxième fichier de configuration etc. mais je cherche quelque chose de plus élégant (de préférence sans la 2e recompilation inutile)Je souhaite exécuter les tests unitaires de teambuild (plusieurs fois) sur plusieurs bases de données différentes

Merci

Répondre

1

Vous souhaitez séparés des tests unitaires (ceux-ci sont considérés comme des tests de système, vraiment - car ils font intervenir une base de données) pour chaque type de base de données. Si le même test unitaire peut échouer pour une plate-forme de base de données et passer pour un autre, il ne vous dit rien d'assez précis lorsque vous examinez l'état réussite/échec et l'historique des résultats de test pour ce test au fil du temps. Sinon, envisagez de découpler ou d'extraire la connexion db de manière à pouvoir la modifier par programme lors de la configuration du test (voir les attributs [ClassInitialize()] et [TestInitialize()] dans le MSTEST unit test framework).

La solution élégante est de ne pas dépendre des bases de données pour les tests unitaires; Créez des tests séparés pour les bases de données qui vérifient les données renvoyées par les requêtes et les procédures que vous appelez.

Visual Studio 2010 Premium dispose du code capability of running unit tests to verify data and behaviour of SQL Server 2005 (and later) DBs. Je serais surpris si vous ne pouviez pas également trouver un outil pour tester Oracle Dbs ou rouler votre propre système de test de ce qui est retourné (quelque chose comme ndbUnit pourrait aider)

+0

merci pour votre réponse. nous sommes découplés ... nous avons une DAL testée séparément qui est testée pour chaque db que nous supportons, après que ça a été testé, mais je serais simplement plus heureux de voir les tests restants passer contre chaque db. – timB33

+0

Ce serait bien si vous pouviez partager des exemples du modèle que vous avez/imaginez pour le bénéfice de la communauté depuis que j'ai remarqué que d'autres ont des questions similaires parmi les sites d'échange de piles; Vous pourriez le poster sur la révision de code et obtenir des commentaires précieux aussi! –

Questions connexes