.NET的黄瓜替代品


80

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

Answers:


90

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

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

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


35

当然。它被称为黄瓜。在Cucumber示例目录和Cucumber Wiki上针对.NETMono的文档中,有一个如何测试.NET代码的示例


我尝试了此操作,但是通过运行ICucumber包装程序却遇到了麻烦。我收到的消息说.yml配置文件丢失。
Owen 2009年

试过这里的一切都说明,以及:thomaslundstrom.blogspot.com/2009/03/...
欧文

1
我猜想您是在参考此消息:“未找到cucumber.yml。请参考小黄瓜的文档,以在cumulum.yml中定义配置文件。您必须定义一个“默认”配置文件才能使用不带任何参数的小黄瓜命令。 “ cucumber --help”以供使用。(Cucumber :: Cli :: YmlLoadError)”,对吗?一个明显的问题是,当程序抱怨找不到文件时,该文件实际存在吗?因为,如果该文件不存在,那么为什么它不能被发现的原因是一种明显的...
约尔格W¯¯米塔格

1
我还是不太明白你的意思。您发布的链接绝对与您的问题无关。您所说的“文件似乎在那里”是什么意思?您编写了文件,保存了文件,您应该知道它是否存在!
约尔格W¯¯米塔格

1
您的示例和Wiki链接为404ing
mattumotu

20

这个空间似乎有3种可能性:

  1. 使用黄瓜和IronRuby。 这是有关此步骤入门的博客。缺点似乎是性能。我读过一些帐户,这些帐户通常说来较慢,而其他帐户则说启动起来真的很慢。但是,由于IronRuby仍在积极开发中,因此还远没有定论。

  2. 使用Cuke4Nuke。我听说过几次推荐该产品。它实际上使用常规的Ruby和Cucumber,但通过服务器运行.NET代码。幸运的是,所有这些并发症在您使用时都是透​​明的。Cuke4Nuke不再处于积极开发中。

  3. 使用SpecFlow。这是Cucumber的.NET端口。因此,它可能不具有Cucumber的所有功能,并且可能具有其他功能。令人高兴的是,您不必安装Ruby。

目前,尚不清楚哪个是最佳选择。我个人计划从Cuke4Nuke开始。


2
对于阅读此书的任何人,似乎不赞成使用Cuke4Nuke而是使用SpecFlow richardlawrence.info/2011/10/21/the-future-of-cucumber-on-net
GuiSim 2012年



3

可以使用Concordion.NET完成纯英文BDD。预期行为的规范以HTML编写。

任何结构的句子都可以用于Concordion.NET测试。例如,没有必要写这样的句子,例如“给了一个余额为10 $的银行帐户,当开始提取20 $时,交易失败”。而是可以使用任何类型的句子,例如“如果帐户中没有足够的10美元余额,则20美元的交易失败”。

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


2

还有StoryQ。这是开发人员关注的用户故事方法,可以报告出客户。 http://storyq.codeplex.com

StoryQ是适用于.NET 3.5的便携式(单个dll)嵌入式BDD框架。它可以在您现有的测试运行程序中运行,并有助于产生人性化的测试输出(html或文本)。StoryQ的流畅界面为您的BDD语法增加了强大的打字,智能和文档功能。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.