Gurkenalternative für .NET

80

Hat jemand im .NET-Bereich eine Bibliothek gefunden, die Rubys Gurke (einem für Menschen lesbaren DSL zum Definieren von Anwendungsfallgeschichten, gegen die getestet werden kann) ähnelt?

Owen
quelle

Antworten:

90

Sie sollten auch SpecFlow ausprobieren , ein Open-Source-Projekt für BDD mit .NET.

SpecFlow verwendet dasselbe Definitionsformat (Gherkin) wie Gurke, aber Sie können Ihre Schrittdefinitionen in .NET schreiben. Grundsätzlich werden Unit-Test-Klassen (NUnit, MsTest, xUnit usw.) aus Ihren Feature-Dateien generiert, sodass Sie dieselbe Unit-Test-Ausführungs-Engine verwenden können, wie Sie es bei den realen Unit-Tests tun. Auf diese Weise ist es auch einfacher, die BDD-Funktionstests in den Integrationsbuild zu integrieren.

In den letzten Versionen verfügt SpecFlow über eine Syntax-Farbfunktion für Visual Studio 2010 und unterstützt Silverlight und Mono / MonoDevelop.

Gaspar Nagy
quelle
35

Sicher. Es heißt Gurke . Es gibt ein Beispiel zum Testen von .NET-Code im Cucumber-Beispielverzeichnis und eine Dokumentation im Cucumber-Wiki für .NET und Mono .

Jörg W Mittag
quelle
Ich habe es versucht, aber beim Ausführen des ICucumber-Wrappers immer wieder Probleme. Die Nachricht, die ich erhielt, besagte, dass die .yml-Konfigurationsdatei fehlte.
Owen
Versuchte auch alles, was hier beschrieben wurde: thomaslundstrom.blogspot.com/2009/03/…
Owen
1
Ich vermute, Sie beziehen sich auf diese Nachricht: "cucumber.yml wurde nicht gefunden. Weitere Informationen zum Definieren von Profilen in cucumber.yml finden Sie in der Dokumentation von cucumber. Sie müssen ein Standardprofil definieren, um den Befehl cucumber ohne Argumente verwenden zu können. Geben Sie ein 'cucumber --help' zur Verwendung. (Cucumber :: Cli :: YmlLoadError) ", richtig? Die offensichtliche Frage, wenn ein Programm sich beschwert, dass es keine Datei finden konnte, ist, ob die Datei tatsächlich vorhanden ist oder nicht. Denn wenn die Datei nicht vorhanden ist, ist der Grund, warum sie nicht gefunden werden konnte, offensichtlich ...
Jörg W Mittag
1
Ich verstehe immer noch nicht ganz, was du meinst. Der Link, den Sie gepostet haben, hat absolut nichts mit Ihrem Problem zu tun. Und was meinst du mit "die Datei scheint da zu sein"? Sie haben die Datei geschrieben, Sie haben die Datei gespeichert, Sie sollten wissen, ob sie vorhanden ist oder nicht!
Jörg W Mittag
1
Ihre Beispiele und Wiki-Links sind 404ing
Mattumotu
20

Es scheint 3 Möglichkeiten in diesem Raum zu geben:

  1. Verwenden Sie Gurke und IronRuby. Hier ist ein Blog über einige Schritte, um damit zu beginnen. Der Nachteil scheint die Leistung zu sein. Ich habe Berichte gelesen, die besagen , dass es im Allgemeinen langsamer ist , und andere, die sagen, dass es nur sehr langsam ist, sich zu drehen . Dies ist jedoch alles andere als schlüssig, da sich IronRuby noch in der aktiven Entwicklung befindet.

  2. Verwenden Sie Cuke4Nuke . Ich habe dieses Produkt einige Male empfohlen gehört. Es verwendet tatsächlich reguläres Ruby und Cucumber, führt jedoch Ihren .NET-Code über einen Server aus. Glücklicherweise ist all diese Komplikation transparent, wenn Sie sie verwenden. Cuke4Nuke befindet sich nicht mehr in der aktiven Entwicklung.

  3. Verwenden Sie SpecFlow . Dies ist ein .NET-Port von Cucumber. Aus diesem Grund verfügt es möglicherweise nicht über alle Funktionen von Cucumber und möglicherweise über zusätzliche Funktionen. Das Schöne ist, dass Ruby nicht installiert sein muss.

Derzeit scheint nicht klar zu sein, welche davon die beste Option ist. Persönlich habe ich vor, mit Cuke4Nuke zu beginnen.

Kevin Berridge
quelle
2
Für jeden, der dies liest, scheint es, dass Cuke4Nuke zugunsten von SpecFlow richardlawrence.info/2011/10/21/the-future-of-cucumber-on-net
GuiSim
3

Ich habe einen Blog-Beitrag geschrieben, in dem der Prozess beschrieben wird, den ich befolgt habe, um Cucumber mit IronRuby zum Laufen zu bringen: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/

Will Green
quelle
Ich werde es durchgehen und mich bei Ihnen melden.
Owen
Ich arbeite auch daran, win32console auf IronRuby zu portieren, damit wir wie in der MRT eine farbige Konsolenausgabe erhalten können: github.com/hotgazpacho/ironruby-win32console
Will Green
3

StoryTeller ist etwas verwandt, obwohl es nicht ausschließlich BDD ist. Es scheint eine etwas andere Art von Test zu unterstützen, ist aber in .NET geschrieben. Lesen Sie mehr auf Jeremy Millers Blog

Johan Bergens
quelle
3

BDD in einfachem Englisch kann mit Concordion.NET durchgeführt werden . Die Spezifikationen des erwarteten Verhaltens sind in HTML geschrieben.

Beliebige Sätze beliebiger Struktur können für Concordion.NET-Tests verwendet werden. Zum Beispiel ist es nicht erforderlich, einen Satz wie "Bei einem Bankkonto mit einem Saldo von 10 $, wenn eine Auszahlung von 20 $ eingeleitet wird, schlägt die Transaktion fehl" zu schreiben. Stattdessen kann jede Art von Satz verwendet werden, z. B. "Eine Transaktion von 20 $ schlägt fehl, wenn das Konto nicht genügend Guthaben von 10 $ enthält".

Concordion.NET-Tests werden mit Hilfe von NUnit ausgeführt, das in viele verschiedene Umgebungen integriert ist: https://github.com/concordion/concordion-net

user3632158
quelle
2

Es gibt auch StoryQ. Dies ist ein entwicklungsorientierter Ansatz für User Stories, mit denen Kunden zurückgemeldet werden können. http://storyq.codeplex.com

StoryQ ist ein portables (Single DLL), eingebettetes BDD-Framework für .NET 3.5. Es wird in Ihrem vorhandenen Testläufer ausgeführt und hilft dabei, eine benutzerfreundliche Testausgabe (HTML oder Text) zu erstellen. Die fließende Benutzeroberfläche von StoryQ erweitert Ihre BDD-Grammatik um starkes Tippen, Intellisense und Dokumentation.

todd
quelle