写点什么

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

  • 2016-02-01
  • 本文字数:889 字

    阅读完需:约 3 分钟

行为驱动开发(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

2016-02-01 18:001649
用户头像

发布了 428 篇内容, 共 178.8 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

编辑器看看

strive

编辑器

“普通本科Java程序员,如何五年存够80万买房?就靠这选择!”

java小李

java 14

百度AI师资培训兰州站启动 社会科学家的第一节人工智能课来了!

百度大脑

人工智能 启蒙 教室

从一线城市回到三四线城市的第四个月

布衣骇客

回忆 个人总结 生活随想

架构实战营 - 模块 3 - 外包学生管理系统架构文档

蔸蔸

他是因为什么,能在半年内从菜鸟学生成为大厂收割机?

Java架构师迁哥

中国信通院发布2021年首批“可信AI成果” 百度摘取5项大奖

百度大脑

人工智能

百度人脸离线识别SDK安卓版升级指南

百度大脑

人工智能 升级迭代

四面字节跳动,终于拿下1-2级offer :Redis+分布式+微服务+算法+网络

Java 程序员 架构 面试 计算机

「从零开始学SpringBoot」—如何开始使用?

java小李

maven Sprint Boot

弯道超车!阿里甩出Spring Security宝典我粉了

java小李

java 14 Sprin

这款开源软件绝了!1分钟即可打造了一个”黑客范“终端~

编程菌

Java 编程 程序员 项目 计算机

当面试官问到:《MySQL数据库的锁机制》该如何拿分?

java小李

spring Boot Starter

降低“美丽成本”,区块链助力化妆品行业数字化转型

旺链科技

区块链 数字化转型 化妆品行业

万万没想到,阿里巴巴被挂后,还能获得内推名额,五面口碑一举拿下offer

Java 编程 程序员 架构 面试

21道最新Java面试题剖析(数据库+JVM+微服务+高并发)

java小李

dubbo Spirng

iOS底层面试题(下篇)

程序员 面试 ios开发

详解TCP协议与UDP协议的区别

Linux服务器开发

网络协议 Linux服务器开发 Linux后台开发 TCP协议 UDP协议

插件编排在 Apache APISIX 中的应用与实践

API7.ai 技术团队

lua 开源 网关 APISIX

左晖:凭一己之力改变了一个行业

石云升

思维模型 诚信 7月日更

区块链技术在产品溯源领域的应用

CECBC

模块三

泰戈

云计算深度挖掘“创新潜力”,北鲲云深耕生命科学领域

北鲲云

降低“美丽成本”,区块链助力化妆品行业数字化转型

CECBC

最新流行的6大优秀DevOps工具

java小李

java 14 puppeteer

数字化成潮流,运维为啥也热了?

ToB行业头条

科技互联网

ipfs矿机最新消息?星际联盟矿机怎么样?

区块链 fil ipfs矿机 星际联盟

下一个颠覆的领域:区块链如何影响审计行业?(上)

CECBC

MySQL高频面试题的灵魂拷问

java小李

MySQL

使用Docker在无网络环境下搭建深度学习环境

白日梦想家

Git提交信息规范化

admin

git flow git cherry-pick Git Commit git 规范

BDD工具SpecFlow版本2支持并行执行_.NET_Jan Stenberg_InfoQ精选文章