【问题标题】:Cucumber alternative for .NET.NET 的黄瓜替代品
【发布时间】:2017-07-03 06:03:35
【问题描述】:

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

【问题讨论】:

    标签: .net cucumber


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      当然。它被称为Cucumber。在 Cucumber examples directory 和 Cucumber Wiki 上为 .NETMono 提供了如何测试 .NET 代码的示例。

      【讨论】:

      • 我尝试了这个,但在运行 ICucumber 包装器时一直遇到问题。我收到的消息说 .yml 配置文件丢失。
      • 也尝试了此处描述的所有内容:thomaslundstrom.blogspot.com/2009/03/…
      • 我猜你指的是这条消息:“cucumber.yml 未找到。请参阅黄瓜关于在 cucumber.yml 中定义配置文件的文档。您必须定义一个“默认”配置文件才能使用不带任何参数的黄瓜命令。键入'cucumber --help' 以了解用法。(Cucumber::Cli::YmlLoadError)",对吗?显而易见的问题是,当程序抱怨找不到文件时,该文件是否真的存在?因为,如果文件不存在,那么找不到的原因就很明显了……
      • 我还是不太明白你的意思。您发布的链接与您的问题完全无关。 “文件似乎在那里”是什么意思?你写了文件,你保存了文件,你应该知道它是否存在!
      • 你的例子和wiki链接是404ing
      【解决方案3】:

      这个领域似乎有 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。

      目前尚不清楚其中哪一个是最佳选择。我个人打算从 Cuke4Nuke 开始。

      【讨论】:

      【解决方案4】:

      StoryTeller 有点相关,尽管它不是严格意义上的 BDD。它似乎支持某种不同类型的测试,但它是用 .NET 编写的。 阅读更多关于Jeremy Millers blog

      【讨论】:

        【解决方案5】:

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

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

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

          【解决方案7】:

          还有 StoryQ。这是一种以开发人员为中心的用户故事方法,可以报告客户。 http://storyq.codeplex.com

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

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-04-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多