是否可以通过编程方式运行specflow测试?

时间:2013-01-17 10:36:53

标签: c# .net tfs bdd specflow

在我的项目中,我们使用specflow,nUnit和Watin编写了BDD测试。我使用resharper从visual studio运行这些测试。现在我想向非技术人员公开这些功能和场景,我希望他们运行这些测试。

我希望在浏览器中列出所有测试,用户应该能够通过点击它们来运行这些测试。这可以实现吗?有没有插件?

目前我们使用Team Foundation Server作为构建服务器。

4 个答案:

答案 0 :(得分:4)

TeamCity,JetBrains的Continuous integration服务器将其作为基于Web的功能提供。它甚至提供统计和测试输出结果。

它支持nUnit开箱即用。 一些配置支持SpecFlowWatin

enter image description here

答案 1 :(得分:3)

您可以使用Pickles项目从源代码管理中的Gherkin规范中生成利益相关者友好的文档(包括HTML)。

没有从HTML运行测试的工具。它是开源的,所以也许你可以用这种方式扩展它......但是,我个人并不认为让非技术用户真正执行规范的价值。我希望您的持续集成服务器运行SpecFlow测试并定期生成step definition report。然后,非技术用户可以浏览这些报告以查看当前项目状态。

答案 2 :(得分:2)

要向非技术人员授予您的功能文件的访问权限,您可以使用http://www.speclog.net/

Spec log将允许非技术人员编辑和创建新功能,并自动将它们与TFS同步。

不幸的是,它不是免费的,你无法运行该工具的规格。

答案 3 :(得分:2)

您将遇到的最大问题是纯文本功能文件会被SpecFlow Visual Studio插件自动转换为xxx.feature.cs文件。所以你的过程就是这个,

  • 修改xxxx.feature文件
  • 找一些方法让SpecFlow插件生成xxx.feature.cs
  • 编译
  • 使用NUnit / Xunit(已配置)
  • 运行测试
  • 收集并提交测试成功报告

对我来说这是一个有名字的过程,我称之为开发。

然而,BDD是一个不同的过程,它是关于与业务的协作和通信,以便设计规范。一开始没有工具,但这个过程仍然有效。

  

我的一些同事一直在各种现实项目中使用BDD技术,并且发现这些技术非常成功。 JBehave故事转轮 - 验证验收标准的部分 - 正在积极开发中。

Dan North - Introducing BDD 2006

不要单独使用这些工具,否则你会错过这个过程的重要部分。通过与BA一起合作定义新规范,您将获得如此多的好处。

P.S。另一种考虑这一点的方法是规范和代码应始终保持一致。仅仅通过定义一个新的例子,我们不会神奇地移动代码以满足该示例。相反,最常见的做法是开发代码以满足新示例,然后将新规范和代码作为单个更改集进行检查。