BDD - Python Behave VS Code 插件 Behave VSC

BDD - Python Behave VS Code 插件 Behave VSC

  • 引言
  • Behave VSC 插件
    • Behave VSC 安装
    • Behave VSC 注意事项
      • Behave VSC 插件默认可识别的项目结构
      • Behave VSC 设置识别非 features 文件名的项目

引言

上一篇《BDD - Python Behave 入门》介绍了 Behave 的入门基础知识,如何创建项目,运行及生成测试报告。我是用 VS Code 开发的,发现 .feature 文件的内容就是普通的文本,没有任何高亮,Gherkin step 也导航不到具体 step 实现代码中,界面上不能执行单个用例,很是不方便,于是就想找找 Behave 是否有 VS Code 支持的插件。

在这里插入图片描述

Behave VSC 插件

Behave VSC 插件就可以解决上面的一些问题,详情请参考官网,下面就来介绍一下 Behave VSC 的使用及注意事项。

Behave VSC 安装

打开 VS Code -》Settings -》Extensions,输入 Behave VSC, 点击 Install 就可以了。

在这里插入图片描述

安装完以后的界面的变化, 看着舒服多了,高亮,界面上就可以直接运行 bebug 测试用例,右键菜单也可以导航到 step 代码实现。

在这里插入图片描述

绿色箭头运行按钮右键还可以展开 Test Explore,可以看到所有的 Test Cases,真方便。

在这里插入图片描述

Behave VSC 注意事项

Behave VSC 对项目的目录结构是有要求的,唯一的 features 功能文件夹(默认为小写),它要么包含一个 steps 文件夹,要么在同一级别上有一个兄弟 steps 文件夹。当然你也可以不用 features 文件夹名,但是 behave 要求你必须有一个名为 “steps” 的文件夹,且 Behave VSC 插件只识别 steps 是小写,像 Steps 首字母大写是不识别的。

Behave VSC 插件默认可识别的项目结构

Behave VSC 插件默认可识别的项目结构有如下三种,注意默认的 features 和 steps 文件夹的名字是固定且是小写,直接位于项目跟目录下。

Example 1: features 和 steps 文件夹是父子关系
在这里插入图片描述

Example 2: features 和 steps 文件夹是兄弟关系
在这里插入图片描述

Example 3: features 和 steps 文件夹是父子关系,steps 文件夹也可以是包含在某子 features 文件夹里
注意,steps 同时在某子 features 文件夹,我实践了一把,发现不能识别到,有点奇怪,所以最好还是就一个 steps 文件夹,所有的 step 实现文件都放这个文件夹。

在这里插入图片描述

Behave VSC 设置识别非 features 文件名的项目

有时你可能不用默认的 features 文件名,而且不是直接挂在项目根目录下的,但是请注意 steps 文件夹名不能重命名且应小写,如下面这种情况

在这里插入图片描述

Behave VSC 是不能识别的,会有下面的提示信息:

Extension was activated because a '*.feature' file was found in a workspace folder, but none of the workspace folders contain either a root 'features' folder or a settings.json that specifies a valid 'behave-vsc.featuresPath'. Please add a valid 'behave-vsc.featuresPath' property to your workspace settings.json file and then restart vscode.

我们需要做一些额外的设置,使得 Behave VSC 能识别我们的项目

  1. 在项目根目录下添加文件 behave.ini
    添加一个 paths 设置为 feature 根目录 和 Steps 根目录的父节点路径,注意是相对路径。
# behave.ini
[behave]
paths=BDD
  1. 更新 extension 设置
    打开 VS Code -> Settings -> Workspace -> Extensions -> behave-vsc -> Feature Path 设置成 feature 的根目录路径,注意是相对路径,
    例如:BDD/Features
    在这里插入图片描述
  2. 重启 VS Code
    注意以上的设置需要重启 VS Code 才生效,你会发现项目的多了一个 settings 文件,这样 Behave VSC 插件就能识别你的项目了。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP应用场景的规划

IP地址作为互联网通信的基石,在现代社会中扮演着至关重要的角色。本文将深入探讨IP地址在不同应用场景中的规划与拓展,探讨其在网络通信、安全、商业、医疗和智能城市等领域的关键作用与未来发展趋势。 IP地址的基本原理 IP地址是分配给网络上设备的数…

python画图【00】Anaconda和Pycharm和jupyter的使用

①Anaconda ②Pycharm 一、Anaconda安装步骤 1、双击安装包,点击next。 2、点我同意I agree 3、 4、选择需要安装的位置,位置可根据自己情况安装到具体位置,但要记住安装到了哪里。然后点击next 5、可选择加入到环境变量,…

深入了解 Android 中的应用程序签名

深入了解 Android 中的应用程序签名 一、应用程序签名介绍1.1 应用程序签名1.2 应用程序签名的意义1.3 应用程序签名的流程1.4 应用程序签名的方案1.5 签名的重要性和应用场景 二、AOSP 的应用签名2.1 AOSP的应用签名文件路径2.2 应用程序指定签名文件 三、Android Studio 的应…

基于电商场景的高并发RocketMQ实战-NameServer内核原理剖析、Broker 主从架构与集群模式原理分析

🌈🌈🌈🌈🌈🌈🌈🌈 【11来了】文章导读地址:点击查看文章导读! 🍁🍁🍁🍁🍁🍁&#x1f3…

自动生成数控加工的轨迹刀具轨迹阿基米德螺旋线(3D)

文章目录 1. 阿基米德螺旋线2. 生成步骤目标: 基于点云自动生成阿基米德螺旋线轨迹点 针对的是半球形模型效果 1. 阿基米德螺旋线 阿基米德螺旋线(Archimedean spiral)是一种数学曲线,由古希腊数学家阿基米德(Archimedes)在公元前225年左右首次研究和描述。这条曲线的方…

Ignite内存配置

配置内存 #1.内存架构 #1.1.概述 Ignite内存架构通过可以同时在内存和磁盘上存储和处理数据及索引,得到了支持磁盘持久化的内存级性能。 多层存储的运行方式类似于操作系统(例如Linux)的虚拟内存。但是这两种类型架构之间的主要区别是&…

zustand 搞定 react 中复杂状态管理

Zustand 是一个轻量级的、无依赖的状态库,适用于 React 和函数式编程。它提供了一个简单、灵活的方式来管理应用程序的状态。本文就讲讲如何使用 zustand 搞定 react 中复杂状态管理,进而替代 redux 。 一、前言 以 redux 为代表的这类单向数据流状态管…

化繁为简,Python快速入门,从基础到实践的学习。

文章目录 前言一、安装与运行命令行运行 python 文件 二、变量和简单数据类型2.1 变量命名规则2.2 字符串2.2.1 字符串的简单运算title()upper()、lower() 2.2.2 合并(拼接)字符串2.2.3 使用制表符或换行符来添加空白2.2.4 删除空白2.2.5 Python 2 中的 …

Pixelmator Pro 中文

Pixelmator Pro是一款专为Mac用户设计的强大图像编辑软件。它提供了丰富的功能和直观的界面,使用户可以轻松进行各种图像处理任务。该软件支持各种文件格式,包括JPEG、PNG、GIF、BMP和TIFF等,并可导入Photoshop的psd文件。它提供了丰富的绘画…

C/C++ 外部链接的静态变量 static和extern的应用

外部链接的静态变量具有文件作用域、外部链接和静态存储期。该类别有时称为外部存储类别(external storage class),属于该类别的变量称为外部变量(external variable)。把变量的定义性声明放在所有函数的外面便创建了外部变量。当然,为了指出…

U-Net: Convolutional Networks for Biomedical Image Segmentation(CVPR2015)

文章目录 AbstractIntroductionNetwork ArchitectureConclusiontorch code hh 源代码 Abstract 人们普遍认为,深度网络的成功训练需要成千上万个带注释的训练样本。在这篇论文中,我们提出了一个网络和训练策略,该策略依赖于数据增强的强大使…

Netty 与 RPC(一)

Netty 与 RPC Netty 原理 Netty 是一个高性能、异步事件驱动的 NIO 框架,基于 JAVA NIO 提供的 API 实现。它提供了对TCP、UDP 和文件传输的支持,作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-List…

React学习计划-React16--React基础(四)生命周期和diffing算法,key的作用

1. 生命周期 1. 声命周期的三个阶段(旧) 初始化阶段:由ReactDOM.render()触发—初次渲染 1. constructor() 2. componentWillMount() 3. render() 4. componentDidMount() > 常用一般在这个钩子中做一些初始化的事情,例如&am…

亚马逊测评的重要性和技术选择

亚马逊测评是指卖家通过各种途径,如测评平台、社区、红人等,联系到亚马逊的买家,让其对卖家的产品进行评价和留下真实的综合评价,这对于跨境电商卖家来说非常重要,因为亚马逊的排名和转化率很大程度上取决于产品的评价…

Python代码示例 | 时间序列数据的组成

时间序列数据是以固定的时间间隔记录或收集的数据点序列。它是一种跟踪变量随时间演变的数据,如销售,股票价格,温度等。定期的时间间隔可以是每天,每周,每月,每季度或每年,数据通常表示为线图或…

Java小案例-Bean是如何注入到Spring中的,有几种注入方式

前言 关于Bean注入Spring容器的方式网上也有很多相关文章,但是很多文章可能会存在以下常见的问题 注入方式总结的不全 没有分析可以使用这些注入方式背后的原因 没有这些注入方式在源码中的应用示例 ... 所以本文就带着解决上述的问题的目的来重新梳理一下Bea…

关于增强监控以检测针对Outlook Online APT活动的动态情报

一、基本内容 2023年6月,联邦民事行政部门(FCEB)在其Microsoft 365(M365)云环境中发现了可疑活动。该机构迅速向Microsoft和网络安全和基础设施安全局(CISA)报告了此情况。经过深入调查&#x…

【数字通信原理】复习笔记

哈喽ノhi~ 小伙伴们许久没有更新啦~ 花花经历了漫长的考试周~ 要被累成花干啦。今天来更新《数字通信原理》手写笔记给需要的小伙伴~ (注:这是两套笔记,是需要结合来看的哦~) 第一套的笔记请结合bilibili:张锦皓的复习课程来哦。 第…

图神经网络并在 TensorFlow 中实现

asokraju.medium.com 一、说明 本文将引导您了解图神经网络 (GNN) 并使用 TensorFlow 实现该网络。在后续的 文章中,我们讨论 GNN 的不同变体及其实现。这是一个分步计划: 图神经网络 (GNN) 的使用:我们首先讨论 GNN 是什么、它们如何工作以及…

Leetcode—415.字符串相加【简单】

2023每日刷题(六十八) Leetcode—415.字符串相加 实现代码 class Solution { public:string addStrings(string num1, string num2) {string ans;int len1 num1.size();int len2 num2.size();int i len1 - 1, j len2 - 1;int sum 0, c 0;while(i…