这是<如何用ABP框架快速完成项目 >系列中的一篇文章。

BDD很赞!比TDD先进很多,能够大大提高编码效率。

让我们动手起来吧!先在.NET Core下安装Specflow!

 
然而官网教程:
  1. 是英文的,没有中文
  2. 是在线安装的,没有离线安装。
  3. 有坑。我已经踩过的坑希望你不要再掉进去了
 
所以我写了这篇中文教程。
 
在.NET Core下安装Specflow步骤如下:
  1. 先安装VS 2017和.NET 4.7.1
  2. 安装VS 2017扩展,官网教程是在线安装,如果需要离线安装,可以把扩展下载到本地,然后复制到没有连接外网的机器上手动安装。
  3. 然后安装以下nuget Packages, 如何离线安装nuget package看这里 和 这里
    1. SpecRun.SpecFlow-3.0.0
    2. SpecFlow.xUnit 和 SpecFlow.MsTest 和 SpecFlow.NUnit 三者中其中一个,这里推荐SpecFlow.xUnit
  4. 离线安装nuget packages有以下几个注意要点:
    1. 添加了本地离线nuget安装源之后要把联网安装源删除掉。
    2. 下载nuget package安装包的时候记得要把依赖也下载了,2018-12-31版本的abp .NET Core版本需要把如下依赖都要下载下来:
    3. 一定要严格按照上图下载各个nupkg,一个都不能少,否则会报错。我已经踩过的坑希望你不要再掉进去了。
  5. 配置,在测试目录下按照下图新增一个specflow.json即可
  6. 代码自动生成配置,
    1. 安装SpecFlow.Tools.MsBuild.Generation nuget package
    2. 按照官网教程去掉.csproj里面的代码:(注意!这一步是每新加一个.feature文件都需要做这一步!!!)
    3. 又一个坑来了,不要理会 https://specflow.org/documentation/Generate-Tests-from-MsBuild/ 这篇文章里的东西。
    4. 还有一个坑:必须在.csproj严格指定如下版本,初始化的ABP Test项目所需package应该如下,不要多也不要少,多了要删掉,特别是Gherkin这个package. 不然会报错,而且这个错Specflow还没有修复,issue状态还是open.
  7. 最后一步啦,测试一下是否一切OK
    1. 新建.feature文件
    2. 操作一遍6.2步骤!不要鼠标右键修改.feature文件的自定义生成属性!!!
    3. 写一个BDD test case
    4. 自动生成测试代码
    5. Build后去test explorer看看能否跑新增的Test case
 

BDD实战篇 - 在.NET Core下安装Specflow的更多相关文章

  1. BDD实战篇 - .NET Core里跑Specflow - 可以跑集成测试和单元测试

    这是<如何用ABP框架快速完成项目 >系列中和DevOps系列文章其中一篇文章.   BDD很赞!比TDD先进很多,能够大大提高编码效率.   上一篇文章说了如何在.NET Core里安装 ...

  2. Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类

    本文目录 1.  前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...

  3. (1)MySQL进阶篇在linux环境下安装

    1.概述 对于mysql二进制安装,优点是可以安装到任何路径下,灵活性好,一台服务器可以安装多个mysql.缺点是已经编译过,性能不如源码编译得好,不能灵活定制编译参数.如果用户即不想安装最简单却不够 ...

  4. 项目部署篇之二——linux下安装jdk1.8

    1.下载jdk1.8 百度云下载后,直接通过xftp拖到你想放的目录下就行了,实在方便 链接:https://pan.baidu.com/s/1hQl0_3owT776lRO9mHSbXA 提取码:2 ...

  5. Python开发【初始篇】:Linux下安装Python3

    Linux系统默认自带python2.6的版本,这个版本被系统很多程序所依赖,所以建议不要轻易删除,除非你能解决其他程序的依赖问题.如果使用最新的Python3需要进行编译安装源码包,这样就对系统默认 ...

  6. 在 windows 环境下安装 redislive

    这是一篇在 windows 环境下安装 redislive 的教程! 项目地址:https://github.com/nkrode/RedisLive 配置文档:http://www.nkrode.c ...

  7. Mac OS X 下安装使用 Docker (2017年7月)

    两年前的一篇 Mac OS X 下安装使用 Docker 安装时还是用的 boot2docker, 如今进化到了在 Mac OS X 下用 Docker Toolbox, 而且命令也由 boot2do ...

  8. Centos 7环境下安装配置Hadoop 3.0 Beta1简记

    前言 由于以前已经写过一篇Centos 7环境下安装配置2.8的随笔,因此这篇写得精简些,只挑选一些重要环节记录一下. 安装环境为:两台主机均为Centos 7.*操作系统,两台机器配置分别为: 主机 ...

  9. ubuntu系统下安装pyspider:搭建pyspider服务器新手教程

    首先感谢“巧克力味腺嘌呤”的博客和Debian 8.1 安装配置 pyspider 爬虫,本人根据他们的教程在ubuntu系统中进行了实际操作,发现有一些不同,也出现了很多错误,因此做此教程,为新手服 ...

随机推荐

  1. ubuntu16.04 uninstall cuda 9.0 completely and install 8.0 instead

    卸载cuda 9.0sudo apt-get --purge remove cudasudo apt autoremoveto remove cuda 9.0 Thensudo apt-get cle ...

  2. Python中的高级变量类型

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

  3. python基础-列表(7)

    一.列表格式 列表名 = [列表元素1,列表元素2,列表元素3,… ] 说明: 列表元素之间是有顺序的,也是通过下标表示,第一个元素的小标为0. 列表元素可以不是同种类型,任何类型都行 列表通常当做容 ...

  4. 使用 DryIoc 替换 Abp 的 DI 框架

    一.背景 你说我 Castle Windsor 库用得好好的,为啥要大费周章的替换成 DryIoc 库呢?那就是性能,DryIoc 是一款优秀而且轻量级的 DI 框架,整个项目代码就两个文件,加起来代 ...

  5. NLog 自定义Target

    http://nlog-project.org/2015/06/30/extending-nlog-is-easy.html 新建一个类库,命名规则为NLog.*.dll 定义一个类输出日志到Rabb ...

  6. w7 python35 输出中文乱码解决

    1.乱码纷争在python自带的控制台正常 但是cmd就跪了,用的vs code也是同样问题,不想以前学习python27那么单纯,前面加个#UTF就可以了 网上寻求解决办法 import io,sy ...

  7. Core2.0知识整理

    概述 Commond-Line ASP.NET结构文件 Startup 配置文件 中间件和依赖注入 依赖注入原理 框架自带的依赖注入(IServiceCollection) 依赖注入生命周期 依赖注入 ...

  8. MongoDB分片详解

    分片是MongoDB的扩展方式,通过分片能够增加更多的机器来用对不断增加的负载和数据,还不影响应用. 1.分片简介    分片是指将数据拆分,将其分散存在不同机器上的过程.有时也叫分区.将数据分散在不 ...

  9. kafka配置项host.name advertised.host.name

    遇到的问题: 在本机或者其他机器telnet IP 9092,通,使用域名也通,telnet 127.0.0.1 9092不通 host.name:按配置文件说明,是Kafka绑定的interface ...

  10. 使用minukube部署kubernetes admission webhook实现etcd pod安全删除

    本需求来自于一道面试题