0

J'utilise NUnit affirme dans un projet MSTest comme la suivante (NOTE: Cela ne devrait pas question voir les commentaires à la réponse de Dave Falkner):IDE s'arrêtant à l'exception AssertionException levée, plutôt que d'échouer au test. (? Coupable de MSTestExtensions)

using Microsoft.VisualStudio.TestTools.UnitTesting; 
using MSTestExtensions; 
using Assert = NUnit.Framework.Assert; 
using Is = NUnit.Framework.Is; 

Cela a beaucoup travaillé dans ma tests unitaires, mais dans mes tests d'intégration, j'ai des problèmes. Je pense que cela pourrait être dû à MSTestExtensions car mes tests unitaires ne l'utilisaient pas. En outre, si je commente l'instruction MSTestExtensions using, l'instruction inherit MSTestExtensionsTestFixture sur la classe et l'attribut [TestTransaction], je n'ai pas ce problème. L'ajout de l'instruction using dans ne provoque pas le problème. L'ajout de l'attribut [TestTransaction] ne provoque pas le problème. Une fois que j'ai hérité de MSTestExtensionsTestFixture sur la classe de test, le problème se présente. Fondamentalement, le problème est que lorsque j'exécute le code suivant dans une situation où il échouera (comme la liste réellePartNumbers contenant deux parties, alors que la liste attendue n'en contient qu'une), l'exception AssertionException n'est pas gérée par MSTest.

Assert.That(actualPartNumbers, Is.EquivalentTo(expectedPartNumbers)); 

Ainsi l'IDE s'arrête à l'exception lancée, plutôt que d'échouer au test. Parfois, cela n'arrive pas et le test échoue normalement. Mais dans la plupart des cas, l'IDE s'arrête à l'exception lancée. Des idées?

Pour votre information: J'utilise MSTestExtensions pour que je puisse faire rollbacks la base de données ([TestTransaction] d'attributs) après chaque test. Ceci est similaire à la fonctionnalité de restauration de MbUnit. Je remplace les affirmations de MSTest avec NUnit parce que j'aime mieux le style fluide. Enfin, j'utilise MSTest parce que j'ai des problèmes avec NUnit. Particulièrement avec Microsoft Moles et conflicts with third party references that use log4net. Je fais de mon mieux pour configurer les tests unitaires/d'intégration afin de pouvoir fonctionner dans l'un ou l'autre des cadres au cas où je changerais. Mais pour l'instant MSTest semble être le moins compliqué et l'intégration dans l'IDE est très agréable.

Répondre

1

Serait-ce juste une question de combinaison de touches que vous utilisez pour lancer les tests: ctrl + R, ctrl + T ctrl + R, T?

http://stevesmithblog.com/blog/run-mstest-without-breaking-on-exceptions-in-vs2010/

+0

Ctrl + R puis T me permet de lancer le test très bien (comme le fait d'exécuter le test via un clic droit dans le contexte de test sur les tests d'exécution), quand sinon il arrêterait à l'exception. Cntrl + R + T s'arrête en effet à l'exception. Cependant, je rencontre également le problème lorsque je définis le projet de test comme projet de démarrage et que j'appuie sur F5. J'aimerais pouvoir exécuter tous les tests en même temps, pas un à la fois. Y a-t-il un moyen de faire une opération ctrl + R puis t comme sur toute la suite de tests? – Matt

+0

Aussi Ctrl + R + T ne s'arrête pas à l'exception si je n'hérite pas de MSTestExtensionFixture. Donc, cela ressemble toujours à un problème MSTestExtension. – Matt

+0

En outre, si je commente le code qui associe l'objet Assert et Is à NUnit (et donc utilise Mertest's Assert), changez l'assert en Assert.Equals (1,2) et appuyez sur Ctrl + R + T et F5, le le problème existe toujours. Cela ne semble donc pas poser de problème avec l'utilisation des assertions NUnit car elles affectent également les assertions MSTest. Encore une fois, si je n'hérite pas de MSTestExtension, je n'ai pas ce problème. – Matt