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.
PowerShell
, collez la commande. *\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. 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.)
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é.