当前位置: 首页 > news >正文

BDD - SpecFlow BDD 测试实践 SpecFlow + MSTest

BDD - SpecFlow BDD 测试实践 SpecFlow + MSTest

  • 引言
  • 创建一个 .NET Framework 项目
  • 添加 SpecFlow package
  • 安装 MSTest Package
  • 创建 Feature 文件
  • 创建 step definition 文件
  • 实现 steps
  • 执行测试
  • 测试报告

引言

前面有介绍下列实践系列:
BDD - SpecFlow BDD 测试实践 SpecFlow + SpecRun
BDD - SpecFlow BDD 测试实践 SpecFlow + Xunit
BDD - SpecFlow BDD 测试实践 SpecFlow 模板
今天来实践一下 SpecFlow + MSTest。

创建一个 .NET Framework 项目

我们接着上一篇 BDD - SpecFlow BDD 测试实践 SpecFlow + SpecRun 中的实例,在已有的 Solution 中添加一个新的项目。

右键 Solution -> Add -> New Project

在这里插入图片描述

选择 Class Library (.NET Framework) 模板

在这里插入图片描述

注意 Framework 的选择,我本机是 .NET Framework 4.6.2,只要是 .NET 5 及之前的版本应该都没有问题。

在这里插入图片描述

新项目 SpecFlowMSTest 创建好了。

在这里插入图片描述

添加 SpecFlow package

右键 References -> Manage Nuget Packages

在这里插入图片描述
注意选择 SpecFlow 版本依赖的 .NE FrameWork 版本,最新版本依赖 .NET Framework 4.6.1,我的是 .NET Framework 4.6.2,是可以向前后容的。

在这里插入图片描述

SpecFlow 装好以后会多出 packages.config 文件用来管理 Nuget 包。相比 SpecFlow 2.4,没有自动生成 App.config 文件。
在这里插入图片描述

安装 MSTest Package

根据官网 MSTest 安装所需要的的 NuGet 依赖包。

在这里插入图片描述

安装 SpecFlow.MSTest

一定要选择跟 SpecFlow 一致的版本,我们也选择最新版本

在这里插入图片描述

安装 MSTest.TestFramework

前面安装 SpecFlow.MSTest,默认安装了 MSTest.TestFramework 2.1.2 版本,因为最新版本也没有啥依赖的,我们可以 Update 到最新版本。

在这里插入图片描述

安装 MSTest.TestAdapter

选择最新版本即可

在这里插入图片描述
安装 Microsoft.NET.Test.Sdk

同样最新版本即可

在这里插入图片描述

添加的 packages 都在 packages.config 文件中。

在这里插入图片描述

创建 Feature 文件

该装的依赖包都装好了,我们尝试创建一个 Feature 文件试试。
右键项目-> Add -> New Item

在这里插入图片描述

选择 SpecFlow -> Feature File for SpecFlow

在这里插入图片描述

Feature 文件生成

在这里插入图片描述

用下面代码替换 feature 文件中的内容

Feature: Calculator

A short summary of the feature

@tag1
Scenario: Add two numbers
	Given the first number is 50
	And the second number is 70
	When the two numbers are added
	Then the result should be 120

在这里插入图片描述
现在编译一下这个项目,会产生一个 Calculator.feature.cs 文件,主要是将 SpecFlow Scenarios 转换成 MSTest 可执行的 test cases。

在这里插入图片描述
在这里插入图片描述

创建 step definition 文件

右键 feature 文件中的 step -> Define Steps…,创建 step definition

在这里插入图片描述

在这里插入图片描述

创建的 step definition 文件,模板文件中 step 都是没有实现的。

在这里插入图片描述

实现 steps

为了简单点,每个 step 只做一个输出

在这里插入图片描述

执行测试

编译整个 Solution, 并打开菜单 Test -> Test Explorer,发现到测试用例,点击绿色图标运行。

在这里插入图片描述

执行结果,还可以看到每个 step 的输出

在这里插入图片描述

测试报告

尽管 Solution 下面会生成 TestResulsts 文件夹,但是是个空文件夹,有关测试报告以后有时间专门介绍一下。

在这里插入图片描述

相关文章:

  • CRM项目记录(四)
  • React组件的生命周期函数
  • FFmpeg源码分析:avformat_open_input()打开媒体流
  • 深入理解关键字 一(auto,register,static,sizeof)
  • 基于Springboot+vue的停车场管理系统(Java毕业设计)
  • 详解CAN总线:CAN总线报文格式—数据帧
  • mysql进阶:canal实现mysql数据同步到redis|实现自定义canal客户端
  • React路由三种渲染方式、withRouter高阶组件、自定义导航组件
  • FaceNet-pytorch(fixing data imbalance-CASIA)
  • 【内核的设计与实现笔记】| 【01】初步了解内核
  • 【HDLBits 刷题】所有答案直达链接汇总
  • portswigger 目录遍历文件上传
  • 【微信小程序入门到精通】— swiper 超详细的属性值讲解!确定不来看看?
  • [单片机框架][device层] fuelgauge 电量计
  • 基于linux的web服务器(问题)
  • 【技术性】Search知识
  • Cumulo 的 ClojureScript 模块已经成型
  • markdown编辑器简评
  • node和express搭建代理服务器(源码)
  • PhantomJS 安装
  • PHP那些事儿
  • python学习笔记 - ThreadLocal
  • Python中eval与exec的使用及区别
  • 理解在java “”i=i++;”所发生的事情
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 日剧·日综资源集合(建议收藏)
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 小程序开发中的那些坑
  • 智能合约Solidity教程-事件和日志(一)
  • HanLP分词命名实体提取详解
  • kubernetes资源对象--ingress
  • 数据可视化之下发图实践
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​configparser --- 配置文件解析器​
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #微信小程序(布局、渲染层基础知识)
  • ${ }的特别功能
  • $forceUpdate()函数
  • (1)(1.9) MSP (version 4.2)
  • (1)常见O(n^2)排序算法解析
  • (39)STM32——FLASH闪存
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)EOS中账户、钱包和密钥的关系
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET Framework杂记
  • .NET轻量级ORM组件Dapper葵花宝典
  • .Net语言中的StringBuilder:入门到精通
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @EnableAsync和@Async开始异步任务支持