Puis-je utiliser mstest?exe sans installer Visual Studio?
je veux utiliser mstest.exe pour exécuter mon test d'unité sur le serveur de construction, mais je ne veux pas installer Visual Studio sur le serveur de construction. Puis-je installer MSTest sans Visual Studio?
8 réponses
il est possible d'exécuter mstest.exe sans studio visuel.
Téléchargez L'un des Agents pour Visual Studio ISO ci-dessous et installez le Agent D'essai sur le serveur:
cette réponse concerne spécifiquement Visual Studio 2017, et la réponse est Oui . S'il vous plaît être conscient, cependant, que Microsoft (still) ne fournit aucune sorte d'API officielle pour localiser les exécutables pertinents ( MSBuild.exe
et MSTest.exe
), donc vous êtes coincé en lisant les clés de registre et/ou en sondant divers répertoires pour localiser ces fichiers . Vous avez été prévenu.
- Si vous avez seulement besoin de construire de votre projet de test d'unité(s), installez le paquet
MSTest.TestFramework
dans ce projet(s) et de supprimer la référence àMicrosoft.VisualStudio.QualityTools.UnitTestFramework
. Maintenant, tout ce dont vous avez besoin est d'installer le Visual Studio 2017 construire des outils et invoquermsbuild.exe
pour effectuer la construction. - Si vous avez besoin de exécuter vos tests, les choses deviennent plus compliquées:
- le plus simple la solution est d'installer VS2017 édition communautaire (qui comprend à la fois msbuild et mstest) - mais je ne suis pas sûr de la légalité de cela, et je ne suis pas un avocat, alors soyez prudent!
- une solution juridiquement plus sûre (et beaucoup plus légère, en termes d'espace disque) est d'installer le construire des outils pour Visual Studio 2017 ( l'ordre exact est essentiel 1 ); cela vous donnera
MSTest.exe
etvstest.console.exe
que vous pouvez ensuite appeler. Notez qu'il est difficile de trouver où résident ces exécutables, car ils n'existeront pas dans la même structure de répertoire queMSBuild.exe
dans les outils de construction.
enfin, et très important: si vous utilisez MSTest.TestFramework
et avez toujours besoin de pouvoir découvrir et exécuter des tests à partir de L'IDE Visual Studio, vous aurez également besoin de MSTest.TestAdapter
installé dans votre projet de test d'unité(s).
1: alors que VS2017 supporte les installations côte à côte, il utilise une seule clé de Registre qui enregistre uniquement l'installation la plus récente. Par conséquent, si vous installez le dernier Agent de Test, la clé pointera vers son répertoire d'installation... mais L'Agent de Test n'inclut pas MSBuild.exe
, donc tout code qui s'appuie sur cette clé de Registre pour comprendre le chemin de l'exécutable, échouera. Pourquoi Microsoft n'a pas pu faire de L'Agent de test une partie optionnelle de Build Outils (de sorte que tous les ex vivent dans la même hiérarchie de répertoire) est à la conjecture de n'importe qui.
je pense que vous pouvez probablement, mais son certainement pas pris en charge.
j'ai trouvé cet article de blog écrit par quelqu'un qui prétend que MSTest fonctionne sans Visual Studio installé.
@crocpulsar, vous devez installer Visual Studio sur votre serveur de construction, mais vous n'avez pas besoin d'acheter une licence supplémentaire .
il y a beaucoup trop de dépendances pour que build & MSTest fonctionne sans VS installé, et ce n'est certainement pas pris en charge.
tant que la personne qui démarre la construction a une licence, vous n'en avez pas besoin pour le serveur de construction. Cela a été le cas depuis les jours sombres de l' 2005, et tant qu'il y a la parité d'édition alors vous êtes OK.
si tout le monde dans votre équipe a Ultimate, alors vous êtes libre de l'installer sur le serveur de construction; mais si un de vos membres de l'équipe a Premium, alors vous devriez idéalement installer Premium sur le serveur de construction. Cela permet également beaucoup d'autres bits comme la couverture de Code, L'analyse D'Impact de Test, et la Validation D'Architecture entre autres.
Voici les étapes que j'ai prises pour que mon serveur de compilation exécute MsTest sans installer VS 2012:
- a créé le dossier répertoire 'Mstest' dans c:\dev.
- Copié " Mstest.exe " et " Mstest.EXE.config 'from C:\Program fichiers (x86)\Microsoft Visual Studio 11.0\Common7\IDE to' Mstest 'directory
- Copie Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll à "Mstest" répertoire
- créé "assemblées' répertoire 'Mstest" dossier
- extrait tous les V11 Microsoft.VisualStudio.QualityTools.*.dll à partir de C:\Windows\assembly 'Mstest/assemblées répertoire
- Copiez tous les' v11 ' Microsoft.VisualStudio.QualityTools. .dlls et Microsoft.VisualStudio.TestTools. .dlls de C:\Windows\Microsoft.NET\assembly\GAC_MSIL à "Mstest/assemblies "
- Copiez tous les V11 Microsoft.VisualStudio.QualityTools. .dlls et Microsoft.VisualStudio.TestTools. .dll de C:\Program fichiers (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Privateassembllies to' Mstest/assemblies '
- ajouter "assemblages" à l'attribut "privatePath" de in' MSTest.EXE.config '
- Export 'HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/VisualStudio/11.0/Enterprise / quality tools and apply it to hudson box.
- Copie QTAgent32.exe et QTAgent32.EXE.config to' MsTest 'directory from C:\Program fichiers (x86)\Microsoft Visual Studio 11.0\Common7\IDE
- ajouter "assemblages" à l'attribut "privatePath" de in' QTAgent32.EXE.config '
- reçu " msdia110.dll " de "C:\Program fichiers (x86)\Microsoft Visual Studio 11.0\Common7 \ Packages\Debugger 'to' MsTest/assemblies '
-
s'Inscrire " msdia110.dll " avec c:/windows/syswow64/regsvr32.exe / i '../mstest/assemblées/msdia110.dll"(cela a jeté une erreur, mais pour une raison quelconque, il a toujours fonctionné. J'ai couru plusieurs fois et essayé différentes regsvr32.exe versions avant que j'ai vérifié, mais il est là dans le registre)
-
ajouter la variable d'environnement 'MSTEST_HOME' et la mettre à 'c:\dev\mstest\' or to your path. J'ai utilisé la variable d'environnement dans mon script de construction.
Débogage MsTest erreur d'exécution:
ajouter à " MsTest.EXE.config '
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="EqtListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\MsTest.log" />
</listeners>
</trace>
<switches>
<add name="EqtTraceLevel" value="Verbose" />
</switches>
</system.diagnostics>
MSTest était annoncé pour les utilisateurs .net Core . L'annonce a un exemple d'utilisation avec l'outil dotnet
. Je ne sais pas comment obtenir l'exécutable autonome mstest
.
si vous devez exécuter mstest.exe webtest outil alors vous pouvez installer Visual Studio Enterprise trial et assurez-vous de l'exécuter au moins une fois (il suffit de le démarrer) sous le compte sous lequel test sera en cours d'exécution sans rien d'autre à faire. Donc, si votre test s'exécute sous compte système, vous devez utiliser quelque chose comme ci-dessous
PS C:\agent> psexec -s cmd.exe
C:\Windows\system32>"C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE\mstest.exe"
Microsoft (R) Test Execution Command Line Tool Version 15.0.27520.0
Copyright (c) Microsoft Corporation. All rights reserved.
Please specify tests to run, or specify the /publish switch to publish results.
For switch syntax, type "MSTest /help"
je viens d'obtenir ce travail sur mes serveurs sans installer L'IDE Visual Studio 2017. Mon exigence était
- projets de construction
- Construire des projets de test
- Exécuter des tests à l'aide de VSTest (je crois que c'est un processus similaire pour MSTest)
j'ai dû faire une combinaison de quelques choses énoncées dans d'autres réponses et puis aussi une autre ici .
VS2017:
- TestAgent - cela peut être trouvé sur le Microsoft downloads page , puis faites défiler vers le bas à "outils pour Visual Studio 2017" - > "Agents pour Visual Studio 2017"
- paquet Nuget pour inclure l'unité visual studio testing dll - cela peut être trouvé ici
L'Étape 3 consistait à régler la question suivante:
" N'a pas permis de résoudre cette question. Ne pouvait pas localiser L'assemblage "Microsoft.VisualStudio.QualityTools.Unittestfram framework "
qui a alors causé:
"erreur CS0234: le type ou le nom D'espace de nommage "VisualStudio" n'existe pas dans L'espace de nommage "Microsoft" (est-ce qu'il vous manque une référence d'assemblage?) "
je n'ai pas eu à ajouter toutes les références au projet. Cependant, le chemin vers le vstest.console.exe est contenu dans le dossier TestAgent (pour moi, il était "C:\Program fichiers (x86)\Microsoft Visual Studio\2017\TestAgent\Common7\IDE\common extensions\Microsoft\TestWindow")