Question

Est-il possible d'intégrer Hudson avec MS Test?

Je suis en train de configurer un serveur CI plus petit sur ma machine de développement avec Hudson, juste pour pouvoir disposer de statistiques (c'est-à-dire. FxCop et avertissements du compilateur). Bien sûr, il serait également bon de pouvoir exécuter mes tests unitaires et de présenter leurs résultats.

Jusqu'à présent, j'ai ajouté la tâche batch suivante à Hudson, ce qui lui permet d'exécuter les tests correctement.

"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:Tests\bin\Debug\Tests.dll

Toutefois, à ma connaissance, Hudson ne prend pas encore en charge l’analyse des résultats du test de MS. Est-ce que quelqu'un sait si les fichiers TRX générés par MSTest.exe peuvent être transformés en JUnit ou format de résultat NUnit (parce que ceux-ci sont pris en charge par Hudson), ou s'il existe un autre moyen d'intégrer les tests d'unité de test MS Test à Hudson?

Était-ce utile?

La solution

Hudson a un nouveau plugin pour MSTest. Il suffit de spécifier l'emplacement du fichier .trx et le travail est fait pour vous. Cela ne me surprendrait pas si le plugin utilisait la solution d'Allen.

Autres conseils

Je voulais écrire ceci comme guide et développer un plugin, mais je ne l’ai pas encore fait. Je sais que cette question est ancienne, mais je suis SÛRE que quelqu'un d'autre veuille la même chose, alors la voici.

Dans la configuration du projet sur Hudson:

Exécuter la commande batch de Windows


SET MSTest="C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"
SET XSLParser="C:\MsBuildNunit\msxsl.exe"

SET TestDLL=path-to-your-test-projects.dll
SET TestOutFILE=TestResults\some-unique-filename.trx
SET TransformedOutputFile=%TestOutFILE:.trx=%.xml
SET XSLFile=c:\MsBuildNunit\MSBuild-to-NUnit.xslt

MKDIR TestResults

%MSTest% "/testcontainer:%TestDLL%" /nologo /resultsfile:%TestOutFILE% 

%XSLParser% %TestOutFILE% %XSLFile% -o %TransformedOutputFile%

SET ERRORLEVEL=0

Cochez ensuite la case " Publier le résultat du test NUnit " et pour " XML de rapport de test " entrez

TestResults/*.xml

Il existe un fichier XSLT dans C: \ MsBuildNunit, ainsi que msxsl.exe qui provient de Microsoft.

Vous pouvez télécharger le fichier MSBuild-to-NUnit.xslt à partir de ici et obtenez msxsl.exe auprès de Microsoft ici ou vous pouvez simplement obtenir la copie compressée de mon dossier MsBuildNunit contenant le xslt et l'exe ici

Lorsqu'il est exécuté, il appelle MSTest.exe qui exécute les tests et affiche le format au format microsofts trx (xml). Ensuite, il appelle msxsl.exe avec xslt et trx et le traduit au format xun de nunits. À la fin de la compilation, Hudson le récupère comme tout autre résultat du test Nunit et vous êtes prêt à partir.

Édité pour ajouter: J'ai oublié de mentionner, avec cet xslt nous obtenons des résultats de test complets. Nous avons plusieurs projets de test et plusieurs dll et nous obtenons un excellent retour d'informations avec la possibilité de représenter graphiquement les tests, d'afficher les tests par nom, d'afficher le statut des tests et, en cas d'erreur, le message d'erreur ainsi que le suivi de la pile. Pratiquement tout ce que vous obtiendrez avec Nunit.

Modifier (encore): Je viens d’ajouter la durée du test dans la transformation afin qu’elle apparaisse dans Hudson maintenant! Semble bien fonctionner pour nos tests.

Edit: J’ai essayé le nouveau plugin MSTest et il ne prend actuellement pas en charge l’analyse de plusieurs fichiers TRX, c’est donc votre seule solution si vous êtes comme nous et avez plusieurs assemblys de test que vous devez exécuter via MSTest.

J'ai pu utiliser une variante de & "hangy's &"; ligne de commande et le plug-in MSTest pour exécuter et analyser / publier avec succès les scénarios de test. Le changement le plus important que j'ai apporté consistait à spécifier le fichier de sortie pour mstest.exe avant que le plug-in MSTest consomme ce fichier (aucun caractère générique autorisé ... ne doit être un nom de fichier réel). Par exemple, voici mon étape de génération personnalisée:

"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:MyProject1.Test/bin/Debug/MyProject1.Test.dll  /testcontainer: MyProject2.Test/bin/Debug/MyProject2.Test.dll /resultsfile:TestResults\HudsonJobTestResults.trx

quitter 0

Notez que le & fichier de résultats " est relative à l'espace de travail du Job. Ainsi, le fichier de résultats du plugin MSTest à analyser est le suivant:

TestResults\HudsonJobTestResults.trx

Et c'est tout!

Hudson a un plug-in de tracé qui peut être utilisé pour tracer données génériques. Ce n'est pas le plug-in le plus facile à configurer et à utiliser si vous avez plusieurs points de données par graphique, mais si vous pouvez analyser votre sortie MS Test et générer des fichiers d'entrée pour le plug-in, vous pouvez au moins tracer les tendances d'échec, de succès et de réussite. total des tests.

Je n'ai pas été en mesure d'utiliser Hudson pour analyser les résultats de tests MS à des fins historiques, mais j'ai au moins été en mesure de comprendre que si vous utilisez MSBuild et la tâche Exec, la construction d'Hudson sera correctement marqué comme " échoué " si l'un des tests échoue.

<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe" /testcontainer:"MyAssembly.dll"" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top