2009-11-17 5 views
4

Nous envisageons de déplacer nos tests de MSTest à XUnit.Migration de MSTest à XUnit

Existe-t-il une application de migration qui prend un MSTest et le migre vers XUnit?

Dans le cas contraire, que dois-je faire pour cela?

Merci. JD.

+0

Combien? Cela aide beaucoup car le conseil pour 5000 tests dans 500 fichiers sera différent de si vous avez <100. –

+0

Il est juste sous 500 tests en ce moment. –

+0

Si ce n'est pas un sicret, quelle est la raison de déménager? –

Répondre

3

je me suis déplacé tout à fait quelques tests récemment. Cela dépend du nombre et du type de tests que vous convertissez, et vous ne vous êtes pas tué en nous donnant des détails. En général, je pense qu'il est prudent de supposer que votre magasin moyen MSTest occupé ne sera pas massivement infecté par les tests et n'aura donc pas plongé dans chaque coin sombre de MSTest.

Toutes les méthodes Assert.* et les attributs de test de base sont simples à trouver et à remplacer. Les plus rares, je dirigerais généralement vers l'évaluation de chaque cas individuellement. Sauf si vous êtes déjà un expert xUnit.net, vous avez beaucoup à apprendre et cela vous aidera.

En outre, l'utilisation de Assert.Fail n'est pas une simple transformation. L'autre chose est la transformation de TestClassInitialize en IUseFixture - simple à faire, mais difficile à automatiser. Si les personnes utilisent des références de test, vous ne pourrez pas supprimer la référence à l'assembly MSTest (et vous devrez toujours avoir VS sur votre serveur de build - et il continuera à échouer de manière aléatoire sur l'ombre prend, voir mes questions). Pour moi, le plus gros travail manuel consistait à passer en revue les 20 lignes de passe-partout d'une région du haut pour voir si quelqu'un utilisait effectivement les attributs personnalisés avant de les supprimer.

La principale chose qui aurait été beaucoup de travail s'il n'y avait pas eu un modèle CodeRush était la conversion ExpectedException à Assert.Throws. Si vous n'avez pas CodeRush ou ReSharper sur ce travail, vous voleriez de l'argent à votre employeur.

+0

Nous avons environ 500 tests sur environ 200 fichiers. Je n'ai pas encore utilisé XUnit, je viens de voir de bonnes critiques et le fait que XUnit soit créé par les développeurs de NUnit, je pensais que ce serait la voie à suivre. Comme je n'ai écrit que quelques-uns des tests, je n'ai pas tous les détails de tous les autres tests. –

+2

@JD: xUnit.net en vaut vraiment la peine selon moi - cela vous permet d'écrire de meilleurs tests, plus courts et plus propres. Si vous lisez le livre d'Osherove et xUnit Test Patterns, vous l'apprécierez encore plus par rapport aux autres frameworks. J'ai eu seulement de bonnes expériences dans mes interactions avec l'équipe aussi (en termes de réponse aux demandes étant raisonnable, opportune etc.). 500 tests sont dans le domaine de ce que j'ai déménagé. Que prévoyez-vous pour les coureurs, etc.? @Others: Quelqu'un d'autre a-t-il des expériences/pièges de portage? –

+0

@Ruben. Merci. L'idée est d'intégrer les tests dans CruiseControl (msTest aurait nécessité l'installation de VS et nous ne voulions pas le faire). Nous avons resharper sur nos machines de développement. Je vais certainement regarder xUnit au cours des prochaines semaines. Pouvez-vous recommander un bon tutoriel/vids etc Merci encore une fois. –

1
+1

@JD - notez qu'il serait plus simple de passer de MSTest à NUnit ou MbUnit, comme le montre clairement le lien de M. Chaliy. Si votre objectif principal est de migrer loin de MSTest, ceux-ci peuvent être de meilleurs choix. Si vous êtes d'accord avec la philosophie de xUnit.net, peu importe. :) – TrueWill

+0

@TrueWill: Bien que je ne serais pas là pour dire "Quel est le problème avec MSTest", je verrais un passage à NUnit ou MbUnit comme un mouvement latéral - à la fin de la journée MSTest a à peu près un mappage à NUnit et vous n'en avez pas gagné beaucoup, sauf pour beaucoup d'attributs MbUnit (si vous considérez qu'un 'gain'). –

+0

Merci les gars, Comme je l'ai mentionné ci-dessous, je n'ai pas utilisé xUnit avant et la migration de 500 tests peut être trop une tâche. Je vais passer à NUnit pour l'instant et j'espère que sur de nouveaux projets, je me pencherai sur la philosophie de xUnit. –