Rspec Cuke4Nuke还是SpecFlow?

Rspec Cuke4Nuke还是SpecFlow?,rspec,tdd,cucumber,bdd,specflow,Rspec,Tdd,Cucumber,Bdd,Specflow,我正在尝试决定是使用Cuke4Nuke还是SpecFlow。 每种方法的优点/缺点是什么?关于哪个更好以及为什么更好的意见 谢谢 (我可能有偏见,因为我参与了SpecFlow,但这里是我的想法…) Cuke4Nuke与Cucumber非常接近。 这将带来很多好处: 相容性 当Cucumber进化时,从Cucumber获得新特性(至少在理论上,但语言支持就是一个例子) 作为黄瓜群落和黄瓜生态系统的真正一部分 然而,这也有一些潜在的缺点: 红宝石是必需品 由于涉及到更多的基础设施(Ruby、W

我正在尝试决定是使用Cuke4Nuke还是SpecFlow。 每种方法的优点/缺点是什么?关于哪个更好以及为什么更好的意见

谢谢

(我可能有偏见,因为我参与了SpecFlow,但这里是我的想法…)

Cuke4Nuke与Cucumber非常接近。 这将带来很多好处:

  • 相容性
  • 当Cucumber进化时,从Cucumber获得新特性(至少在理论上,但语言支持就是一个例子)
  • 作为黄瓜群落和黄瓜生态系统的真正一部分
然而,这也有一些潜在的缺点:

  • 红宝石是必需品
  • 由于涉及到更多的基础设施(Ruby、Wire协议、命令行集成……),整个解决方案的复杂性增加,并且链中某些东西出现故障的可能性增加
  • 调试是可能的,但有点困难
  • 在dos命令行上运行场景实在是太难看了,我对一些角色(德语Umlaute)仍然有问题。在我的案例中,Cucumber的代码不适用于cuke4nuke
  • 与持续构建的集成是您必须自己解决的问题
SpecFlow是Cucumber的一个独立项目。它试图尽可能地接近Cucumber,但存在并将存在差距。有计划使用与Cucumber相同的解析器,以提高语言级别的兼容性

SpecFlow尝试提供以下优势:

  • 纯.NET解决方案(因此无需安装Ruby,运行时不涉及Ruby)
  • 与VisualStudio有一个基本的集成(并且有计划对此进行改进)
  • 场景基本上是单元测试,可以使用现有的基础架构运行(NUnit.Runners、ReSharper、VisualStudio MSTest集成…)
  • 使用VisualStudio可以轻松调试场景和步骤(只需设置断点)
  • 在您的持续构建中集成应该是轻而易举的事,因为运行单元测试的基础设施肯定已经存在了
作为SpecFlow的缺点,我目前看到:

  • 它不支持黄瓜那么多的语言
  • 目前涉及到一个“代码生成”步骤。这在使用VisualStudio时是透明的,并且在没有VisualStudio的情况下有一条命令行可以做到这一点,但是很多人不喜欢代码生成
  • 目前没有SpecFlow的显式命令行运行程序。但是,您可以使用单元测试命令行运行程序
  • SpecFlow依赖于单元测试框架,目前仅支持NUnit和MSTest
  • SpecFlow中的报告还不是很复杂。Cucumber确实提供了更多的选择,但是我不知道cuke4nuke中是否都有这些选择

    • jbandi给出了一个很好的总结。我回答这个问题的方式大致相同(当然,对于偏见的免责声明截然相反)

      Cuke4Nuke的目标是在.NET中完全兼容Cucumber,同时尽可能少地复制Cucumber代码。因此,您强调的一些权衡——例如Ruby依赖性是该工具固有的。其他问题,如语言和格式化程序支持中的错误以及有限的调试支持,都是暂时的问题,将随着未来版本的出现而消失


      我遇到了一些Cuke4Nuke不能像Cucumber那样工作的问题。但由于我的工作主要是英语,所以在我的正常工作中,我看不到与语言相关的问题。我欢迎采取措施重现这些问题,以便我能够解决它们。(请发到他们那里,不要发到这里。)

      另一个有严重偏见的观点:试试看:)

      StoryQ测试实际上是代码,因此您可以获得更好的重构/IDE支持,并且它嵌入到您现有的单元测试运行程序中,因此CI很容易实现

      您是希望签入纯文本功能还是可编译代码,这可能是一个偏好问题。但对我们来说,我们发现能够重新命名叙事方法并让所有故事自我更新真的很好

      如果您已经在纯文本场景中进行了投资,或者如果您希望将键盘提供给业务人员,那么实际上提供了一个GUI,可以将纯文本场景转换为StoryQ代码。它甚至还有一种简单的智能感知

      如果你想要一个超轻量的BDD入口点,那就试试吧:)

      另一个有偏见的回答:吃掉所有其他的.NET BDD工具

      优势:StorEvil有自己的命令行运行程序,有很好的报告功能(使用Spark view引擎),并且有最好的纯文本->C#翻译和执行引擎

      而且,它比任何其他解决方案都有100%的邪恶


      缺点:StorEvil不完全支持其他人类语言(英语除外)。StorEvil的Visual Studio集成还不如其他工具好。如果你不注意的话,StorEvil会把冰箱里的啤酒都喝光。

      我从Cuke4Nuke开始,但后来投奔了SpecFlow(对不起,Richard;-)

      我做出这一转变的主要原因是:

      • SpecFlow具有良好的VS2010集成,用于突出显示功能的语法。有一个Cuke4VS项目提供了类似的功能,但它没有VS2010支持(或者在我上次查看时没有,那是最近的一次)
      • 我发现在SpecFlow中调试测试更容易(不要让我详细说明,只是看起来是这样…;-)
      • Cuke4Nuke需要Ruby。我对此没有意见,但我认识的大多数C#dev都会被任何非MS产品吓到,尤其是Ruby
      在Cucumber/Cuke4Nuke世界中,Specflow/我更喜欢的东西存在一些问题:

      • Specflow的文档非常“精简”——您必须准备好努力从Cucumber源收集信息,并直觉地了解它们如何应用于Specflow。也就是说,我和其他人很少有设计来增强d