NUnit vs. MbUnit vs. MSTest vs. xUnit.net [fermé]

il y a pas mal de cadres d'essai là-bas .NET. J'ai trouvé cette petite comparaison de caractéristiques: http://xunit.github.io/docs/comparisons.html

maintenant je dois choisir le meilleur pour nous. Mais comment? Est-il question? Laquelle est la plus future preuve et a un élan décent derrière elle? Dois-je me soucier des caractéristiques? Alors que xUnit semble être le plus moderne et spécifiquement conçu pour .NET, NUnit semble à nouveau être celui qui est largement acceptée. MSTest est déjà intégré dans Visual Studio ...

352
demandé sur Jim Bolla 2008-11-04 10:20:06

7 réponses

je sais que c'est un vieux fil, mais j'ai pensé poster un vote pour xUnit.NET . Alors que la plupart des autres cadres de test mentionnés sont à peu près tous les mêmes, xUnit.NET a adopté une approche assez unique, moderne et flexible pour tester les unités. Il change la terminologie, de sorte que vous ne définissez plus les tests et les tests...vous spécifiez des faits et des théories au sujet de votre code, qui s'intègre mieux avec le concept de ce qu'est un test du point de vue de L'ATD/ATD.

xUnit.NET est également extrêmement extensible. Ses classes d'attributs FactAttribute et TraitAttribute ne sont pas scellées, et fournissent des méthodes de base overridables qui vous donnent beaucoup de contrôle sur la façon dont les méthodes que ces attributs décorent devraient être exécutées. Alors que xUnit.NET dans sa forme par défaut vous permet d'écrire des classes de test qui sont similaires aux fixtures de test de NUnit avec leurs méthodes de test, vous n'êtes pas limité à cette forme de test unitaire à tous. Vous êtes libre d'étendre le cadre à l'appui des spécifications relatives aux préoccupations, au contexte et à l'Observation de type BDD, tel que représenté par ici .

xUnit.NET prend également en charge fit-style testing directement à partir de la boîte avec son attribut de théorie et les attributs de données correspondantes. Les données d'entrée de Fit peuvent être chargées à partir d'excel, de la base de données, ou même d'une source de données personnalisée telle qu'un document Word (en étendant l'attribut de données de base.) Cela vous permet de capitaliser sur une plate-forme de test unique pour les deux tests unitaires et les tests d'intégration, qui peuvent être énormes dans la réduction des dépendances du produit et la formation requise.

D'autres méthodes d'essai peuvent également être mises en œuvre avec xUnit.Les possibilités sont illimitées. Combinés avec un autre cadre de moquerie très tourné vers l'avenir, Moq , les deux créent une plate-forme très flexible, extensible et puissante pour mettre en œuvre des tests automatisés.

180
répondu jrista 2015-12-09 15:30:51

NUnit est probablement le plus supporté par les outils tiers. Il est aussi là depuis plus longtemps que les trois autres.

personnellement je ne me soucie pas beaucoup sur les cadres de test d'Unité, les bibliothèques moqueuses sont IMHO beaucoup plus important (et vous enfermer dans beaucoup plus). Il suffit de choisir un et de s'y tenir.

127
répondu Alexander Kojevnikov 2008-11-04 07:29:33

Je n'irais pas avec MSTest. Bien que ce soit probablement la preuve la plus future des cadres avec Microsoft derrière elle n'est pas la solution la plus flexible. Il ne marchera pas seul sans quelques hacks. Donc l'exécuter sur un serveur de compilation autre que TFS sans installer Visual Studio est difficile. Le visual studio Test-runner est en fait plus lent que Testdriven.Net + l'un des autres cadres. Et parce que les sorties de ce framework sont liées aux sorties de Visual Studio il y a moins mises à jour et si vous devez travailler avec un VS plus âgé, vous êtes lié à un MSTest plus âgé.

je pense que peu importe lequel des autres cadres vous utilisez. Il est vraiment facile de passer de l'un à l'autre.

j'utilise personnellement XUnit.Net ou NUnit selon les préférences de mes collègues. NUnit est le plus standard. XUnit.Net est le cadre le plus mince.

105
répondu Mendelt 2009-11-29 01:16:27

envisager de compléter, et non de remplacer, le MSTest par un autre cadre d'essai. Vous pouvez garder L'intégration de Visual Studio MSTest tout en bénéficiant des avantages d'un cadre de test plus complet.

par exemple, j'utilise xUnit avec MSTest. Ajouter une référence au xUnit.dll assemblée, et faire quelque chose comme ça. Curieusement, il fonctionne, tout simplement!

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Assert = Xunit.Assert;  // <-- Aliasing the Xunit namespace is key

namespace TestSample
{
    [TestClass]
    public class XunitTestIntegrationSample
    {
        [TestMethod]
        public void TrueTest()
        {
            Assert.True(true);  // <-- this is the Xunit.Assert class
        }

        [TestMethod]
        public void FalseTest()
        {
            Assert.False(true);
        }
    }
}
19
répondu Matt Crouch 2012-09-26 22:58:27

ce n'est pas une grosse affaire sur une petite échelle/personnelle, mais ça peut devenir une grosse affaire rapidement sur une plus grande échelle. Mon employeur est un grand magasin Microsoft, mais ne veut pas/ne peut pas acheter dans le système D'équipe / TFS pour un certain nombre de raisons. Nous utilisons actuellement Subversion + Orcas + MBUnit + TestDriven.NET et cela fonctionne bien, mais en obtenant TD.NET c'était un gros problème. La sensibilité de la version de MBUnit + TestDriven.NET est également un gros tracas, et d'avoir une chose commerciale supplémentaire (TD.NET) pour l'examen juridique et l'approvisionnement à gérer n'est pas anodin. Mon entreprise, comme beaucoup d'entreprises, sont gros et heureux avec un modèle D'abonnement MSDN, et il est tout simplement pas habitué à gérer un off acquisitions pour des centaines de développeurs. En d'autres termes, l'offre entièrement intégrée de MS, bien que certainement pas toujours le meilleur du pain, est une valeur ajoutée importante à mon avis.

je pense que nous allons rester avec notre Pas actuel parce qu'il fonctionne et nous avons déjà surmonté la bosse de l'organisation, mais je suis sûr que J'aimerais que MS ait une offre convaincante dans cet espace afin que nous puissions consolider et simplifier notre pile de dev un peu.

8
répondu user8133 2008-12-29 18:46:54

ce n'est pas grand chose, c'est assez facile de passer d'un groupe à l'autre. MSTest étant intégré n'est pas une grosse affaire non plus, il suffit de saisir testdriven.net.

comme la personne précédente a dit choisir un cadre moqueur, mon préféré en ce moment est Moq.

7
répondu 2008-11-04 07:33:33

Nunit ne fonctionne pas bien avec les projets à mode mixte en C++ donc j'ai dû le laisser tomber

6
répondu Eric 2009-06-05 20:27:35