写点什么

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:002149
用户头像

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

关注

评论

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

高效的远程办公经验 | 社区征文

远程办公 6月月更 初夏征文

大一学生课设c——服装管理系统

工程师日月

6月月更

quarkus+saas多租户动态数据源切换实现简单完美

weir威尔

SaaS 多租户 Quarkus 动态数据源

使用Mycat进行MySQL单库分表

迷彩

架构 运维 mycat 分布式数据库中间件 6月月更

电商如何借助小程序发力

Geek_99967b

小程序 电商

【云舟说直播间】-数字安全专场明天下午正式上线

云计算

坚持五件事,带你走出迷茫困境!

博文视点Broadview

5 个关于 NFT 的技术漏洞

devpoint

区块链 以太坊 NFT 6月月更

《Java编程思想》作者Bruce Eckel新作,到底做了哪些升级?

图灵教育

Java

java程序员培训 | Java设计模式之桥接模式

@零度

设计模式 JAVA开发

攻防演练合集 | 3个阶段,4大要点,蓝队防守全流程纲要解读

青藤云安全

网络安全 网络攻防 安全服务 攻防演练

NodeJS 防止xss攻击

德育处主任

Node 6月月更

实战监听Eureka client的缓存更新

程序员欣宸

Java SpringCloud 6月月更

成熟的知识管理,应具备哪些条件?

小炮

如何使用 Django Forms 创建表单?

海拥(haiyong.site)

Python django 6月月更

java培训 | Java设计模式之装饰者设计模式

@零度

JAVA开发

APM 工具 SkyWalking 是什么

耳东@Erdong

监控 Skywalking 6月月更

运行时应用自我保护(RASP):应用安全的自我修养

SEAL安全

RASP

JSON入门教程

倔强的牛角

json Fastjson 6月月更

Angular 服务器端渲染应用一个常见的内存泄漏问题

汪子熙

typescript 前端开发 angular Spartacus 6月月更

消息队列的丢失、重复与积压问题

Damon

6月月更

开发增效利器—2022年VsCode插件分享

中原银行

ide vscode 插件 中原银行 降本增效

Kafka ETL 之后,我们将如何定义新一代实时数据集成解决方案?

tapdata

kafka ETL 数据集成 实时数据 DaaS

Linux开发_摄像头编程(实现拍照、网页监控功能)

DS小龙哥

6月月更

不止于观测|阿里云可观测套件正式发布

阿里巴巴云原生

阿里云 云原生 可观测 套件

K8S学习笔记--安装Docker环境

IT蜗壳-Tango

IT蜗壳 6月月更

mysql存储引擎之Myisam和Innodb的区别

乌龟哥哥

6月月更

redis 精讲系列介绍八 - 淘汰策略

Nick

Redis 核心技术与实战 6月月更 redis 底层原理 redis 淘汰策略 redis 精讲

直播带货app源码搭建中,直播CDN的原理是什么?

开源直播系统源码

软件开发 直播带货 直播系统 app源码

DevEco Device Tool 助力OpenHarmony设备开发

OpenHarmony开发者

OpenHarmony

Rancher 2.6 全新 Monitoring 快速入门

Rancher

Kubernetes k8s rancher

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