【发布时间】:2011-12-14 14:45:54
【问题描述】:
我希望能够在不进行编译的情况下在本地执行给定的 SpecFlow (Gherkin) .feature 文件。
因此工作流程将是(作为业务分析师或 QA 工程师):
1. 修改 .feature 文件(使用预定义的步骤词汇表)
2.运行
SpecFlowSuperTool.exe
/feature:.\FoobarprojectSpecs.feature
/assembly:Foobarproject.dll,Foobarproject.Core.dll
- 获取报告
目标是能够按需执行功能,而无需重新编译代码,如果只是功能发生了变化。
感觉实现这样一个工具应该是一项非常简单的任务,因为 Gherkin 步骤绑定发生在运行时(根据 SpecFlow 生成的 NUnit 代码判断)。
我知道已经支持 generate->compile->run 场景,但在某些情况下编译步骤似乎是不必要的。
更新 我最终自己编写了该工具。 SpecFlow API 非常简单,构建一个 specflowrunner.exe 非常容易,它可以使用目录或文件 + 配置文件,并直接执行 .feature 文件,而无需先创建单元测试。
【问题讨论】:
-
我不明白这怎么可能。新场景需要生成新的 NUnit 测试,所以需要编译。对现有场景的更改需要现有测试以不同的顺序运行语句,因此需要更改代码并进行编译。您认为这到底是如何工作的?
-
不需要生成单元测试。构建一个使用 .feature 文件并直接执行它们的控制台应用程序非常简单,而不是绕道生成单元测试。
-
@THX-1138,你能分享代码吗?我希望 SpecFlow 直接从目录中获取 .feature 文件,而不生成 feature.cs 文件。我对 SO here 有类似的问题
-
@THX-1138 我非常想使用你的工具。我也有同样的想法并寻找可能的实现方式。这是在 Github 上吗?
-
我可以通过 xUnitAdapter 做到这一点,并在此处记录 rdagumampan.com/post/2018/06/…
标签: specflow