我正在尝试决定是否应该使用Cuke4Nuke或SpecFlow。 每个人的利弊是什么?关于哪个更好的意见和原因。
谢谢!
答案 0 :(得分:59)
(我可能有偏见,因为我参与了SpecFlow,但我的想法......)
Cuke4Nuke与Cucumber非常接近。 这有很多优点:
然而,这也有一些潜在的缺点:
SpecFlow是与Cucumber分开的项目。它试图尽可能接近黄瓜,但存在并且将存在差距。计划使用与Cucumber相同的解析器,以提高语言级别的兼容性。
SpecFlow尝试提供以下优势:
作为SpecFlow的缺点,我现在看到:
答案 1 :(得分:11)
jbandi给出了一个很好的总结。我以同样的方式回答这个问题(当然,对于偏见的反对免责声明)。
Cuke4Nuke的目标是在.NET中完全兼容Cucumber,同时尽可能少地复制Cucumber代码。因此,你强调的一些权衡 - 例如。 Ruby依赖项 - 是该工具固有的。其他人,如语言和格式化程序支持中的错误以及有限的调试支持,都是临时问题,将在未来的版本中消失。
我遇到了一些Cuke4Nuke不像Cucumber那样有效的问题。但由于我主要使用英语,我在正常工作中看不到语言相关的问题。我欢迎重现任何这些问题的步骤,以便我可以解决它们。 (请发帖给他们the Cuke4Nuke issues list,而不是这里。)
答案 2 :(得分:11)
另一个有偏见的观点:尝试StoryQ:)
StoryQ测试实际上是代码,因此您可以获得更好的重构/ IDE支持,并且它嵌入在您现有的单元测试运行器中,因此CI是轻而易举的。
您是否愿意检查纯文本功能或可编译代码,这可能是一个偏好问题。但是对于我们来说,我们发现能够重新命名叙事方法并让所有故事都自我更新真的很棒。
实际上有一个GUI可以将纯文本场景转换为StoryQ代码,如果您已经对明文场景进行了投资,或者您想将键盘交给您的业务人员。它甚至还有一种简单的智能感知形式!
如果您想要一个超轻量级的BDD入口点,请试一试:)
答案 3 :(得分:7)
另一个有偏见的回复:StorEvil吃掉所有其他.NET BDD工具。
优势:StorEvil拥有自己的命令行运行程序,具有良好的报告功能(使用Spark视图引擎),并具有最佳的纯文本 - > C#转换和执行引擎。
此外,它比其他任何解决方案都多100%。
缺点:StorEvil不完全支持其他人类语言(英语除外)。 StorEvil的Visual Studio集成还不如其他工具那么好。如果你不注意,StorEvil会把冰箱里的所有啤酒都喝掉。
答案 4 :(得分:7)
我从理查德了解到他打算停止使用Cuke4Nuke并支持将部分Cuk4Nuke功能移植到SpecFlow中。所以现在明确的答案是SpecFlow。
答案 5 :(得分:6)
我从Cuke4Nuke开始,但后来叛逃到SpecFlow(对不起理查德; - )
我做出这种转变的主要原因是:
在Cucumber / Cuke4Nuke世界中,Specflow /我更喜欢的东西有一些问题:
总而言之,两者都有可能改善我们编写软件的方式。