53 votes

Comment exécuter des tests unitaires en ligne de commande?

J'ai googlé et trouvé le dessous de références utiles. Actuellement, je veux tout exécuter à partir de la ligne de commande (pour la facilité d'exécution et la rapidité) dans les cas:

  1. Un test spécifique (ie. un test écrit par une méthode marquée [TestMethod()])
  2. Tous les tests dans une classe
  3. Tous les tests impactés de l'actuel TFS changement en cours de la mine.
  4. Tous les tests
  5. Tous les tests à l'exception de ceux marqués comme catégorie [TestCategory("quelques-catégorie")]

Je ne suis pas sûr de savoir comment puis-je écrire une commande correcte pour mes besoins ci-dessus.

Si vous connaissez le savez, merci de partager! Toute aide est la bienvenue et beaucoup appriciated!

Références:

  1. l'MSTest.exe http://msdn.microsoft.com/en-us/library/ms182487.aspx
  2. l'MSTest.exe s'options détaillées http://msdn.microsoft.com/en-us/library/ms182489.aspx
  3. pour obtenir le résultat http://msdn.microsoft.com/en-us/library/ms182488.aspx

[Modifier]

Après un certain temps, j'ai trouvé le ci-dessous des conseils utiles.

  1. exécutez Visual Studio tests unitaires à l'aide MSTest.exe, situé à l' %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe dans mon cas.
  2. à l'aide de /testcontainer:Path\To\Your\TestProjectAssembly.dll pour indiquer l'endroit où vos tests sont codées. Vous pouvez spécifier plusieurs '/testcontainer " options si nécessaire.
  3. à l'aide de /test:TestFilter pour filtrer les tests à exécuter. Notez que ce filtre est appliqué à la méthode de test complète nom (ie. FullNamespace.Classname.MethodName)

Espérons que cela aide à vous les gars.

15voto

Nam G VU Points 5954

Actuellement je peux avoir quelques réponses à mes besoins:

  1. Un test spécifique (ie. un test écrit par une méthode marquée [TestMethod()])
    Utiliser MSTest.exe /container:TheAssemblyContainingYourSpecifictest /test:TheSpecificTestName

  2. Tous les tests dans une classe
    Utiliser MSTest.exe /container:TheAssemblyContainingYourClass /test:TheClassNameWithFullNamespace
    Notez que l' /test: est le filtre qui utilise le nom complet de la classe lors du filtrage.

Les autres sont encore inconnus. Veuillez disscuss si vous savez comment.

13voto

Pour le numéro 4. Pour exécuter tous les tests dans un assemblage, il suffit simplement de:

mstest /testcontainer:YourCompiledTestAssembly.dll

4voto

Michael Freidgeim Points 4002

Pour question

5 Tous les tests sauf ceux marqués dans la catégorie [TestCategory ("une catégorie")]

Utilisation

 mstest.exe /testcontainer:yourTests.dll  /category:"!some-category"
 

Si vous devez exclure plusieurs catégories, utilisez

 mstest.exe /testcontainer:yourTests.dll  /category:"!group1&!group2"
 

Filtre de référence / catégorie

3voto

Yann Trevin Points 2747

Vous pourriez être intéressé par le Gallion bundle. Il fournit gratuitement une commune de la plate-forme d'automatisation de l'exécution des tests (MSTest, MbUnit, NUnit, xUnit, etc.) avec divers les coureurs de l'épreuve (GUI, ligne de commande, Chic, plugins 3ème partie outils, etc.)

En particulier, vous pouvez utiliser Gallion.L'écho de ce qui est une bonne ligne de commande de test runner:

Gallio.Echo

Le Gallion les coureurs de l'épreuve ont également des capacités de filtrage pour exécuter un sous-ensemble de vos tests unitaires (par exemple, par catégorie, par appareil, etc.)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X