Comment exécuter TOUS les tests de ma solution en utilisant la ligne de commande MSTest.exe?

Selon MSDN ici et discuté ici , nous pouvons utiliser MSTest.exe pour exécuter des tests à partir de la ligne de commande – ce qui est plus MSTest.exe et plus rapide que de s’exécuter dans l’EDI (particulièrement lent si vous travaillez sur une grande solution).

Ma question est la suivante: comment puis-je utiliser MSTest.exe pour exécuter tous les tests de ma solution ? La commande n’a que l’option /test pour filtrer les tests dans un assembly spécifié dans l’option /container . Je ne peux que penser à appeler cette commande N fois, étant donné que je peux avoir tout l’assemblage de test N dans ma solution (!?). De plus, les résultats après exécution sont de base pour que les tests échouent / passé.

Si vous connaissez un meilleur moyen, partagez-le! Je vous remercie!

J’ai accompli ceci en utilisant l’argument testmetadata et en le dirigeant vers mon fichier .vsmdi.

Comme expliqué ici .

Par exemple:

 mstest /testmetadata:mySolution.vsmdi 

Cependant, notez que testmetadata peut être plus fragile (par exemple, les listes de tests vides combinées avec l’atsortingbut Ignorer parce que la dissortingbution spécifiée n’est pas valide ). Créer un lot avec toutes les DLL contenant des classes de test pourrait être une alternative plus fiable.

J’avais besoin de la même chose, sans vouloir installer quoi que ce soit ou générer des fichiers vsmdi , j’ai donc proposé ce script PowerShell ci-dessous. Il exécute TOUS les tests en une seule commande sur un dossier et ses sous-dossiers (pas de solution , mais c’est bien pour moi).

N’hésitez pas à suggérer comment rendre ce script plus élégant:

 $x = ""; dir *\bin\*test*.dll -Recurse | foreach { $x += "/testcontainer:""$_"" " }; iex "mstest $x" 

Instructions:

  • Ajoutez le chemin d’access à mstest.exe via Environment variables variable d’ Environment variables PATH , sinon remplacez simplement mstest par son chemin complet dans le script PowerShell ci-dessus.

    entrer la description de l'image ici

  • Ouvrez PowerShell , collez la commande.
  • Modifiez *\bin\*test*.dll pour répondre à vos besoins. Dans le script actuel, toutes les DLLs du dossier bin seront toutes récursives, contenant la sous-chaîne “test” dans le nom du fichier.
  • Exécutez la commande!

Vous voudrez peut-être jeter un coup d’œil au système de test Gallio.Echo fourni avec la plate-forme d’automatisation de test Gallio . C’est un paquet gratuit (OSS) avec de nombreux outils de reporting et testeurs pratiques et supportant la plupart des frameworks de test existants (MbUnit, NUnit, MSTest, xUnit, etc.)

texte alt

Plus précisément, Gallio.Echo est un testeur de ligne de commande polyvalent. Vous pouvez spécifier une liste d’assemblages de test, différents filtres et de nombreuses options supplémentaires. Gallio consolide les résultats de test dans un seul rapport (Xml, Html, Zip, etc.)

Utilisez simplement:

 mstest.exe /testcontainer:yourTests.dll /resultsfile:res.trx 

et il exécutera tous les tests de cet assemblage et crachera les résultats dans le fichier spécifié.