2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

SpringBoot 使用 jasypt 对配置项进行加密

hungxy

Java springboot jasypt

Apache BeanUtils和Spring BeanUtils剖析

Bruce Duan

BeanUtils 浅拷贝和深拷贝

架构师训练营 -- 第七周学习总结

花花大脸猫

MySQL 大表优化方案

Bruce Duan

MySQL优化

分布式锁用 Redis 还是 Zookeeper?

xcbeyond

redis zookeeper 分布式锁

Docker容器中一定要避免的10件事

xcbeyond

Docker 避坑

ARTS打卡 第8周

引花眠

ARTS 打卡计划

自从用完Gradle后,有点嫌弃Maven了!速度贼快!

xcbeyond

maven Gradle

IDEA 插件: EasyCode 一键生成所需代码

Bruce Duan

idea插件 easycode 生成代码

Mybatis二级缓存,你确定要用么?

xcbeyond

mybatis 二级缓存 一级缓存

MinIO 简介和搭建一个对象存储服务

耳东@Erdong

Minio store Object store

MyBatis几种好用的写法

Bruce Duan

MyBatis标签

ARTS 05 - 使用 Ecto.Migration 来做数据库迁移

jerry.mei

学习 算法 ARTS 打卡计划 函数式编程 Elixir

技术革新产业变革新动能

CECBC

LeetCode 144. Binary Tree Preorder Traversal

liu_liu

算法 LeetCode

JDK1.8新特性(四):函数式接口

xcbeyond

新特性 函数式编程 JDK1.8 JDK1.8新特性

应届生求职面试真的有那么难吗

xcbeyond

面试 应届生

架构师训练营——请简述 CAP 原理

WW

如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?

Bruce Duan

消息队列 保证消息不丢失 处理重复消息 消息有序性 消息堆积处理

架构师训练营作业 (第七周)

默默

LeetCode 565. Array Nesting

liu_liu

算法 LeetCode

JDK1.8新特性(五):Stream,集合操作利器,让你好用到飞起来

xcbeyond

stream 集合 新特性 JDK1.8 JDK1.8新特性

性能测试

满山李子

极客大学架构师训练营

使用HSDB 查看jvm内存

引花眠

企业架构框架之DoDAF

冯文辉

企业架构

什么?还没有自己的域名?

北漂码农有话说

JVM系列之:详解java object对象在heap中的结构

程序那些事

Java JVM GC JOL

记一次西安thoughtworks的面试经历

xcbeyond

面试 thoughtworks

week7 总结 性能测试

Geek_z9dmvw

两个指针缩小范围算法,CQRS 命令查询职责分离模式 John 易筋 ARTS 打卡 Week 09

John(易筋)

ARTS 打卡计划

写一个 web 性能压测工具

WW

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