Frage

Es gibt eine ganze Reihe von Frameworks Unittesting gibt für .NET. Ich fand dieses kleine Feature Vergleich: http://xunit.github.io/docs/comparisons.html

Jetzt bin ich das beste für uns zu entscheiden. Aber wie? Spielt es eine Rolle? Welches ist die meisten zukunftssicher und hat eine gute Dynamik dahinter? Sollte ich kümmern uns um die Funktionen? Während xUnit zu sein scheint modernsten und speziell für .NET entwickelt, scheint NUnit wieder derjenige zu sein, die weithin akzeptiert wird. MSTest wieder ist bereits in Visual Studio integriert ...

War es hilfreich?

Lösung

Ich weiß, das ist ein alter Thread, aber ich dachte, dass ich eine Stimme abgeben würde für xUnit.NET . Während die meisten der anderen Test-Frameworks erwähnt alle ziemlich gleich sind, hat xUnit.NET eine ziemlich einzigartig, modern und flexibel auf Unit-Tests gemacht. Es ändert Terminologie, so dass Sie nicht mehr definieren TestFixtures und Tests ... Sie Fakten und Theorien über Ihren Code angeben, die mit dem Konzept besser integriert, was ein Test von einer TDD / BDD Perspektive.

xUnit.NET ist auch äußerst dehnbar. Seine FactAttribute und TraitAttribute Attributklassen sind nicht abgedichtet und bieten overridable Methoden Basis, die Ihnen viel Kontrolle darüber, wie die Methoden, diese Attribute schmücken sollten ausgeführt werden. Während xUnit.NET in seinem Standardformular Ihnen Testklassen schreiben kann, die mit ihren Prüfverfahren zu NUnit Prüfvorrichtungen ähnlich sind, sind Sie gar nicht zu dieser Form von Unit-Tests beschränkt. Sie sind frei, den Rahmen zu erweitern BDD-Stil Concern / Kontext / Observation Spezifikationen zu unterstützen, wie dargestellt hier .

xUnit.NET unterstützt auch fit-style-Tests direkt aus der Box mit ihrer Theorie Attribute und Datenattribute entsprechen. Fit Eingangsdaten können aus Excel, einer Datenbank oder auch eine benutzerdefinierten Datenquelle wie beispielsweise ein Word-Dokument (durch Verlängerung des Basisdatenattributes.) Geladen werden, um diese Sie auf einer einzige Testplattform sowohl für Komponententests und Integrationstests, profitieren können, welche kann bei der Verringerung der Produktabhängigkeiten und erforderliche Ausbildung sehr groß sein.

Andere Ansätze zum Testen auch mit xUnit.NET implementiert werden können ... die Möglichkeiten sind ziemlich grenzenlos. In Kombination mit einem anderen sehr zukunftsorientierten Mockframework, Moq , schaffen die beiden eine sehr flexible, erweiterbare und leistungsstarke Plattform für automatisierte Tests zu implementieren.

Andere Tipps

NUnit ist wahrscheinlich die am meisten von den 3rd-Party-Tool unterstützt. Es ist auch schon länger als die anderen drei gewesen.

Ich persönlich weiß nicht viel über Frameworks Unit-Test, verspotten Bibliotheken sind IMHO viel wichtiger (und sperren Sie in viel mehr). Nur ein Pick und bleiben Sie dabei.

Ich würde nicht mit MSTest gehen. Obwohl es wahrscheinlich die Zukunft Beweis der Gerüste mit Microsoft dahinter nicht die flexibelste Lösung ist. Es läuft nicht allein stehen, ohne einige Hacks. So läuft es auf einem Build-Server anders als TFS ohne Visual Studio zu installieren ist hart. Der Visual Studio Test-Läufer ist tatsächlich langsamer als Testdriven.Net + jeden des anderen Frameworks. Und weil die Versionen dieses Rahmens Versionen von Visual Studio gebunden sind es weniger Updates und wenn Sie mit einem älteren arbeiten VS Sie gebunden sind ein älteres MSTest.

Ich glaube nicht, dass es eine Menge Fragen, die von den anderen Frameworks Sie verwenden. Es ist wirklich einfach von einem zum anderen zu wechseln.

Ich persönlich benutze XUnit.Net oder NUnit je nach Vorliebe meiner Mitarbeiter. NUnit ist der Standard. XUnit.Net ist der schlanksten Rahmen.

Betrachten Ergänzung, nicht ersetzen, MSTest mit einem anderen Test-Framework. Sie können während Visual Studio MSTest Integration halten Sie die Vorteile eines voll funktionsfähige Test-Framework zu bekommen.

Verwenden Sie zum Beispiel i xUnit mit MSTest. Fügen Sie einen Verweis auf die xUnit.dll Montage, und nur so etwas tun. Suprisingly, es funktioniert einfach!

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);
        }
    }
}

Es ist keine große Sache, auf einer kleine / Personenwaage, aber es kann ein größeres Geschäft schnell in einem größeren Maßstab worden. Mein Arbeitgeber ist ein großer Microsoft-Shop, aber nicht / kann nicht für eine Reihe von Gründen in Team System / TFS kaufen. Wir verwenden derzeit Subversion + Orcas + MBUnit + TestDriven.NET und es funktioniert gut, aber TD.NET immer war ein riesiger Aufwand. Die Version Empfindlichkeit von MBUnit + TestDriven.NET ist auch ein großer Aufwand, und (TD.NET) für Recht eine zusätzliche kommerzielle Sache, die zu überprüfen und Beschaffung zu handhaben und zu verwalten, ist nicht trivial. Meine Firma, wie viele Unternehmen sind fett und glücklich mit einem Modell MSDN Subscription, und es ist einfach nicht verwendet man aus Beschaffungen für Hunderte von Entwicklern zu handhaben. Mit anderen Worten, die voll integrierten MS Angebote, während definitiv nicht immer best-of-Brot, ist ein bedeutender Mehrwert-meiner Meinung nach.

Ich denke, dass wir mit unserem aktuellen Schritt bleiben, weil es funktioniert und wir haben schon über den Berg organisations bekommen, aber ich sicher wünsche MS in diesem Raum ein überzeugendes Angebot hatte und so konnten wir unseren Entwickler-Stack einer Konsolidierung und Vereinfachung Bit.

Nunit funktioniert nicht gut mit Mixed-Mode-Projekten in C ++, also musste ich es fallen zu lassen

Es ist keine große Sache, es ist ziemlich einfach, zwischen ihnen zu wechseln. MSTest integriert ist keine große Sache, entweder nur testdriven.net greifen.

Wie die vorherige Person sagte ein Mockframework holen, mein Favorit ist im Moment Moq.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top