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