Ich verwende Visual Studio (manchmal Nachschärfen), um meinen Gerätetest durchzuführen.
Ich habe von NUnit gehört, aber ich weiß nicht viel darüber ...
Soll ich mich darum kümmern? Kann es etwas Besseres bieten als Visual Studio?
Sollte ich NUnit verwenden und warum?
NUnit hat gegenüber MS-Test nur wenige Vorteile
Assert.AreEqual(expected, actual)
vs Assert.That(actual, Is.EqualTo(expected))
[TestCase]
! NUnit erlaubt parametrisierte Tests.Aus meiner jetzigen Perspektive (nach 8 Monaten Entwicklung mit durchschnittlich 10 Entwicklern) würde ich aus folgenden Gründen raten gegen MSTest verwenden
Mit anderen Worten, wenn ich mich vor 8 Monaten noch einmal entscheiden müsste, würde ich wahrscheinlich NUnit nehmen. Ich habe möglicherweise keinen integrierten Testergebnisbericht, aber Entwickler würden nahtlosere Testerfahrung haben.
Hier ist meine Erfahrung mit MS Test
Zusatz: Wir haben jetzt einige weitere Tests, können nicht einmal sagen, wie viele. Aufgrund von OutOfMemoryExceptions und anderen Instabilitätsproblemen ist es nicht mehr möglich, sie alle in Visual Studio auszuführen. Wir führen die Tests von Skripten aus. Das Anzeigen der Testergebnisse in Visual Studio wäre einfach, aber wenn die Lösung geöffnet ist, stürzt VS (jedes Mal) ab. Wir müssen also die fehlgeschlagenen Tests mit der Textsuche suchen. Ein integriertes Werkzeug bietet keinen Vorteil mehr.
Ein weiteres Update : Wir verwenden jetzt VS 2013. Viele Dinge haben sich geändert. Sie haben den MS Test-Testläufer zum dritten Mal seit unserem Start neu geschrieben. Dies führte zu einer Reihe von Neuerungen, aber keine der neuen Versionen verbesserte sich. Wir sind froh, dass wir die ausgefallenen Funktionen von MS Test nicht verwendet haben, da sie alle nicht mehr unterstützt werden. Es ist wirklich schade. Wir verwenden immer noch Skripts, um alle Komponententests zu erstellen und auszuführen, da dies einfacher ist. Das Starten von Tests in Visual Studio dauerte einige Minuten (Zeitmessungen nach dem Kompilieren bis zum ersten Test). Sie beheben es wahrscheinlich mit einem Update und dies könnte ein spezifisches Problem unseres Projekts sein. Resharper ist jedoch viel schneller, wenn dieselben Tests ausgeführt werden.
Fazit : MS Test ist zumindest in Kombination mit Resharper sinnvoll. Und ich hoffe, dass sie endlich herausfinden, wie der Testläufer geschrieben werden sollte, und dass diese Änderungen nicht beim nächsten Update von Visual Studio vorgenommen werden.
NUnit kann in Kombination mit Visual Studio verwendet werden. Es ist ein Rahmen, kein separates Programm. Sie könnten sich also darum kümmern, ob es Ihnen passt :).
"Nach der Installation des Plugins finden Sie ein neues Untermenü unter dem Menü" Tools "."
Siehe http://nunitit.codeplex.com/ für weitere Informationen zum Importieren.
Auch bei der Suche nach SO kann viel gefunden werden. Dieses Thema listet beispielsweise die Vorteile von NUnit gegenüber MS-Standardtests auf.
Der größte Vorteil von MS-Test gegenüber NUnit ist, dass MS-Test mithilfe von Reflection Scheinobjekte erzeugen kann. Ich fand es sehr nützlich
NUnit arbeitet mit der Standard Edition von VS.
NUnit ist ein Unit-Test-Framework, das auch von resharper unterstützt wird. Ich denke, Sie verwenden das Unit-Test-Framework von Microsoft, daher ist NUnit nur eine Alternative zu Microsofts Produkt;)
Hier ist der Link zur Homepage von NUnit: http://nunit.org/index.php
Ich bin nicht sicher bei anderen, aber NUnit bietet Nice GUI und Console für die Ausführung Ihrer Unit-Tests. Außerdem können Sie einen Bericht über das Ergebnis der NUnit-Test-Ausführung generieren, aus dem hervorgeht, ob der Test fehlgeschlagen ist oder bestanden hat und wie viel Uhr es war nehmen Sie für Ihren Gerätetest
In NUnit werden Tests nicht parallel ausgeführt. Es scheint, dass alle Tests in einem einzigen Thread ausgeführt werden. In MSTest wird jeder Test in einem separaten Thread instanziiert. Dadurch werden die Läufe verschachtelt. Wenn Test A für seinen Erfolg von Test B abhängt, schlägt er wahrscheinlich fehl, da Test B wahrscheinlich läuft, wenn Test A läuft.