2009-10-14 7 views
14

Pour des raisons que je ne vais pas aborder, tous nos tests unitaires utilisent le framework de test VSTS. Je veux maintenant créer un script MSBuild qui exécute les tests, mais je ne veux pas utiliser mstest.exe pour diverses raisons (il est plus lent, nécessite l'installation de Visual Studio partout, je dois maintenir testrunconfig, etc.)Exécution de tests VSTS sans mstest.exe

J'ai vu que TestDriven.net et TeamCity sont capables d'exécuter le style NUnit des tests VSTS, sans utiliser mstest.exe. Connaissez-vous un utilitaire de ligne de commande autonome qui le fait?

+0

Cela a été un désagrément pour moi aussi, donc je l'ai soulevé comme demande 'voix de l'utilisateur'. Si vous lisez ceci, et que vous le sentez fortement, pouvez-vous voter pour? https: //visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4619858-mstest-api –

Répondre

19

vous pouvez exécuter des tests Team System (MSTest) dans NUnit si vous utilisez un NUnit spécial Addin qui reconnaît les attributs du test MS (TestClass, etc.).

Exact Magic Software a un open-source "test-adapter" qui peut le faire.

MISE À JOUR: J'ai retravaillé l'adaptateur Msits NUnit d'Exact Magic pour NUnit 2.5.2.

+1

On dirait que c'est ce que je cherche, seulement cela ne fonctionne pas avec la dernière version de NUnit (2.5.2). J'ai essayé la version sur laquelle cela est supposé fonctionner (2.4.6), mais il semblerait que cela ne fonctionne pas sur mon système (Windows 7). –

+0

Souvent, les addins NUnit sont liés au framework sous lequel ils ont été compilés. A à voir avec la façon dont NUnit et l'addin résolvent les dépendances. Si elles fournissent la source, vous devriez être capable de recompiler avec une référence mise à jour. Cela suppose qu'ils ne font pas quelque chose de spécifique avec les assemblages de base 2.4.6, bien que la plupart des interfaces de base n'aient pas beaucoup changé. Si je trouve le temps, je pourrais essayer. – bryanbcook

+0

J'ai commencé à m'intéresser à cela, il semble qu'ils aient apporté quelques changements de cassure dans la version 2.5.2, donc il faudrait un refactoring pour que l'adaptateur fonctionne. –

0

Il est possible d'exécuter MSTests sans installer Visual Studio. Voir how-do-i-use-mstest-without-visual-studio.

Je l'ai fait afin que je puisse exécuter mes tests dans le cadre de mon processus de CI. (J'utilise CC.NET pour ma solution CI). Je suis dans une situation similaire à celle de vous, en ce sens que je veux utiliser TestDriven.NET pour obtenir des statistiques de couverture de code. Mais, je rencontre des problèmes. Mon premier problème est que j'utilise AssemblyInitialize attributs pour initialiser une connexion à une base de données. Ceci n'est pas supporté par NUnit donc environ la moitié de mes tests échouent alors qu'ils fonctionnent bien sous MSTest. Donc, il semble que la traduction des tests d'un cadre de test à un autre a des pièges. Si vous en êtes conscient, allez-y, mais il serait peut-être préférable d'essayer de rester cohérent sur un cadre de test.

+0

Merci, je suis conscient de pouvoir exécuter mstest.exe en dehors de VS, mais je ne veux pas utiliser MSTest du tout, à cause de ses nombreux problèmes. –

+0

Ok - alors, pouvez-vous abandonner complètement MSTest? Convertir tous vos tests en NUnit? Il semblerait qu'un environnement de test mixte soit pire que MSTest par lui-même. – quip

1

Il semble que TeamCity utilise simplement Gallio pour exécuter des tests VS. Gallio semble avoir l'intégration msbuild et semble parfait, mais après un examen plus attentif, il semble qu'il faudrait une VS installer comme MSTest comme il semble dépendre de MS exes:

The plugin enable condition was not satisfied: '${process:DEVENV.EXE} or 
${process:VSTESTHOST.EXE} or 
${process:QTAGENT.EXE} or 
${process:QTAGENT32.EXE} or 
${process:QTDCAGENT.EXE} or 
${process:QTDCAGENT32.EXE}'. 
Host process exited with code: 0 

Cela étant dit, il ressemble à au moins une personne a obtenu ce travail:

Christoph De Baene - Running MSTest without Visual Studio

0

Nous exécuter des tests en utilisant VSTS msbuild TestToolsTask sur un serveur de contrôle de vitesse. Cela n'utilise pas l'exécutable MSTEST - la condition que vous demandez - mais utilise une variété de dépendances TFS. Notez que nous migrons les tests de la structure de test VSTS pour NUnit, principalement parce que nous pouvons créer des extensions pour que NUnit puisse effectuer des tâches utiles.

Questions connexes