码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 文件夹,但是是个空文件夹,有关测试报告以后有时间专门介绍一下。

    在这里插入图片描述

  • 相关阅读:
    SpringAOP入门
    要不要提前去实习?
    Vue.js 3.x 中跨层级组件如何传递数据?
    【C++初阶】C++内存管理
    【Git系列】Github指令搜索
    JavaEE-博客系统3(功能设计)
    什么是观察者模式?用 Python 如何实现 Observer(观察者或发布订阅)对象行为型模式?
    介绍 TensorFlow 的基本概念和使用场景
    FPGA结构:LATCH(锁存器)和 FF(触发器)介绍
    Prim 求 MST| INIT: cost[][]耗费矩阵(inf为无穷大);
  • 原文地址:https://blog.csdn.net/wumingxiaoyao/article/details/127038382
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号