Je me rends compte qu’il ya beaucoup de questions plus anciennes qui traitent de la question générale de NUnit v MSTest pour les versions de Visual Studio jusqu'en 2008 (comme celui-ci ).
Microsoft a l'habitude de bien faire les choses dans sa 3ème version. Pour MSTest, il s'agit de VS2010.
L'ont-ils fait avec MSTest? Voulez-vous l'utiliser dans un nouveau projet de préférence à NUnit?
Mes préoccupations spécifiques:
(Nous utilisons ReSharper, les testeurs ne sont donc pas un problème pour nous. Nous utilisons NUnit depuis quelques années. Nous n'avons pas de TFS.)
Ma recommandation est la suivante: si NUnit vous satisfait - utilisez-le, oubliez MSTest
Pour corriger certaines informations anciennes sur le fil;
J'ai principalement utilisé NUnit, certains xUnit et certains MSTest. Les fonctionnalités semblent équivalentes, mais je n’aime pas le programme d’essai MSTest. Il fonctionne dans Visual Studio afin de masquer l'écran ou se trouve sur un autre moniteur, gênant chaque fois que je passe à Visual Studio. (J'exécute NUnit sur un autre moniteur, mais il ne couvre pas tout ce qu'il contient à chaque fois que je cible Visual Studio). Il faut trop de clics pour savoir quel test a échoué et pourquoi.
NUnit peut être exécuté en arrière-plan jusqu'à l'échec d'un test. Il vous indique alors les informations relatives au test de rupture. Cela semble être l’idéal pour que le rouge/vert/refactor se passe bien.
Nan. Les mêmes problèmes concernant les domaines d'application et la résolution de l'Assemblée existent toujours. J'éviterais à moins que vous ne vouliez le nouveau bien pour d'autres tests fonctionnels ou une intégration avec Team System.
Je ne connais pas grand chose à propos de CruseControl.net, mais vous pouvez déboguer des tests. Actuellement, nous n'utilisons pas non plus TFS, et le MSTest fonctionne pour nous.
Si vous pensez exécuter vos tests en mode 64 bits, utilisez NUnit. MsTest est seulement x86.
MSUnit exécute vos cas de test dans des conditions différentes de l'environnement d'exécution réel. Plus précisément, les fichiers déployés diffèrent de ceux déployés lorsque vous exécutez votre projet réel. Cependant, il existe le [DeploymentItem] -Attribute pour spécifier quels fichiers doivent être déployés par MSUnit. Donc, si votre application dépend de fichiers externes , Tels que
alors, MSUnit n’est pas le bon choix, car les tests de MSUnit ne couvrent jamais ce à quoi votre système de fichiers ressemblera dans un environnement d’exécution. Les paramètres de fichier de projet Visual Studio pour le déploiement de fichiers (Copier toujours, Contenu, etc.) sont ignorés par le programme d'exécution MSUnit. Donc, ces paramètres ne peuvent pas être testés.
Une différence majeure entre les deux est que MSTest crée une copie des DLL actuelles à chaque fois qu'il exécute un test. Si vous utilisez TDD et exécutez fréquemment vos tests, cela peut consommer beaucoup d’espace disque.
Si vous utilisez MSTest, vous pouvez modifier ce paramètre dans Outils> Options> Outils de test> Test de l'exécution. "Limiter le nombre d'anciens résultats de test à" est défini par défaut sur 25 dans Visual Studio 2010. Je le modifie généralement en 1.