BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

BDD工具SpecFlow版本2支持并行执行

| 作者 Jan Stenberg 关注 29 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2016年2月2日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

行为驱动开发(BDD)工具SpecFlow的最新版本支持以并行方式执行测试,并添加了对xUnit 2.0和NUnit 3.0的支持。最新发布的版本2同时升级至新的Gherkin 3解析器,后者目前几乎已应用在所有Cucumber工具中了。

InfoQ与SpecFlow的作者与主要维护者Gáspár Nagy进行了一次访谈,按照他的描述,以用户的角度来看,并行测试执行是最重要的一个新特性。Nagy发现,在大多数情况下,即使在单一的机器中,执行时间也降低了大约40%。如果某个应用程序依赖于静态状态,例如缓存,推荐的做法是通过多个隔离的AppDomain进行并行的测试执行。这种方式能够确保每个执行测试的线程中的内存是相互隔离的,从而能够以并行的方式进行测试的执行,而无需考虑额外的因素。如果测试并不依赖于任何静态状态,即不会在静态字段中保存任何特定于测试的信息,那么就可以在一个AppDomain中并行执行。这种方式的初始化资源占用较少,所需的内存也较少。

至于Gherkins 3的升级,Nagy认为这正是跨平台开源项目的一个绝佳案例。通过这种方式可以打造跨平台的BDD技能、工具以及社区。

Nagy还表示,从开源项目的角度来看,这次发布最重要的一项改进在于:在经历了很长一段时间之后,社区终于成功地发布了一个新版本,并且趁此机会对项目进行了一些清理工作,让项目重回正规,以迎接今后更频繁的发布。

其他的改进点包括:

  • 所有组件都已升级至.NET 4.5,值得注意的是,从这次升级之后,SpecFlow版本2将不再支持任何较早的.NET运行时版本。
  • 通过一个Order参数,就可以控制钩子(例如BeforeScenario)的执行顺序。
  • 简化了使用MSTest时的配置。
  • 改进了基于正则表达式的建议功能,以更好地发现所遗漏的步骤。
  • 与Visual Studio的集成被转移至一个独立的项目中。

SpecFlow是在.NET平台上实现BDD的一个开源工具,它也是Cucumber家族的一员,后者支持其他各种平台。通过这种工具,可以以Gherkin语言的形式描述一个用户故事中的场景,描述采用了基于关键字的方式,其中最重要的关键字包括Given、When和Then。

在SpecFlow网站上可以找到入门示例、升级指南以及文档

查看英文原文:BDD Tool SpecFlow V2 with Parallel Execution

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT