.NET的黄瓜替代品

时间:2009-06-10 14:51:14

标签: .net cucumber

快速的一个,有没有人在.NET领域遇到类似于Ruby的黄瓜(用于定义可以测试的用例故事的人类可读DSL)的库?

8 个答案:

答案 0 :(得分:85)

您还应该查看SpecFlow,这是一个使用.NET进行BDD的开源项目。

SpecFlow使用与黄瓜相同的定义格式(Gherkin),但您可以在.NET中编写步骤定义。它基本上从您的功能文件生成单元测试类(NUnit,MsTest,xUnit等),因此您可以使用相同的单元测试执行引擎,就像使用实际单元测试一样。这样,将BDD功能测试集成到集成构建中也更容易。

在最近的版本中,SpecFlow具有Visual Studio 2010的语法着色功能,并支持Silverlight和Mono / MonoDevelop。

答案 1 :(得分:34)

不确定。它被称为Cucumber。有一个如何在Cucumber examples directory中测试.NET代码的示例以及.NETMono的Cucumber Wiki文档。

答案 2 :(得分:20)

在这个领域似乎有3种可能性:

  1. 使用Cucumber和IronRuby。 Here's a blog开始执行此操作的一些步骤。缺点似乎是表现。我已经阅读过说slower in general的帐户,还有其他人说这只是really slow to spin up。然而,由于IronRuby仍处于积极发展阶段,这远非结论性。

  2. 使用Cuke4Nuke。我听过这个产品推荐了几次。它实际上使用常规的Ruby和Cucumber,但是通过服务器运行.NET代码。幸运的是,所有这些复杂功能在使用时都是透​​明的。 Cuke4Nuke不再处于积极发展阶段。

  3. 使用SpecFlow。这是Cucumber的.NET端口。因此,它可能没有Cucumber的所有功能,并且它可能具有额外的功能。好的是你不必安装Ruby。

  4. 此时似乎并不清楚这些中哪一个是最佳选择。就个人而言,我打算从Cuke4Nuke开始。

答案 3 :(得分:3)

我写了一篇博文,详细介绍了我使用IronRuby运行Cucumber的过程:http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/

答案 4 :(得分:3)

尽管不是严格的BDD,但是StoryTeller有些相关。它似乎支持一种不同类型的测试,但是用.NET编写。 阅读Jeremy Millers blog

的更多信息

答案 5 :(得分:3)

BDD in plain English可以使用Concordion.NET完成。预期行为的规范以HTML格式编写。

任何结构的任何句子都可用于Concordion.NET测试。例如,没有必要写一个句子,例如“给定一个余额为10美元的银行账户,当启动提款20美元时,交易失败”。相反,可以使用任何类型的句子,例如“20美元的交易失败,如果该帐户包含的余额不足10美元”。

Concordion.NET测试是在NUnit的帮助下执行的,NUnit集成在许多不同的环境中:https://github.com/concordion/concordion-net

答案 6 :(得分:2)

还有StoryQ。这是一个针对用户故事的开发重点方法,可以报告客户端。 http://storyq.codeplex.com

  

StoryQ是一个用于.NET 3.5的可移植(单dll)嵌入式BDD框架。它在您现有的测试运行器中运行,有助于生成人性化的测试输出(html或文本)。 StoryQ的流畅界面为您的BDD语法增加了强大的输入,智能感知和文档。

答案 7 :(得分:1)

我有一篇文章展示了如何在http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html使用Cucumber和C#。使用IronRuby 1.0,运行时间得到了显着改善。