【测试框架篇】单元测试框架pytest(1):环境安装和配置

ops/2024/11/14 13:30:32/

一、pytest简介

Pytest是Python的一种单元测试框架,与Python自带的unittest测试框架类似,但是比 unittest框架使用起来更简洁,效率更高。

二、pytest特点

Pytest是一个非常成熟的Python测试框架,主要特点有以下几点:

  • 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
  • 能够支持简单的单元测试和复杂的功能测试
  • 支持参数化
  • 执行测试过程中可以将某些测试用例跳过(skip),或者对某些预期失败的case标记成失败
  • 支持重复执行(rerun)失败的 case
  • 支持运行由 nose, unittest 编写的测试 case
  • 可生成html 报告
  • 方便jenkins持续集成
  • 可支持执行部分用例
  • 具有很多第三方插件,并且可以自定义扩展

三、pytest安装

1、确认环境上是否安装python和pip程序

在安装pytest前,首先要确保python环境和pip装包工具正确安装,方法如下:

  • 在cmd命令窗口输入python --version或者直接输入python都可以确认环境是否安装python,下图表示环境已经安装了python 3.10.4版本。

注意:我们一般安装python版本都不会是最新版本,都会选择当前运行最稳定的版本。这里我们用的是python3.0而不是2.0,还有同学在用2.0的要注意了,还是存在很大差异的。

  • 同时在cmd命令窗口输入pip -V,下图可以看到pip软件已经安装完成

注意:如果这里显示的pip不是最新版本,下面会提示你升级pip版本,具体你可以参照命令行下面提示的操作,执行pip升级命令就行。

2、安装pytest

pytest安装特别简单,在cmd命令窗口输入命令pip install pytest就可以

上面步骤执行完后,可以通过下面命令pip list或者pytest --version看pytest是否安装成功

四、第一个pytest脚本

 我这里讲述的是基于pycharm软件下运行的pytest脚本,所以各位看官首先要安装pycharm软件。

1、 首先在pycharm软件里面新建一个项目pythonProject3

2、在生成的项目下面新建一个文件夹testcase

3、然后在testcase文件夹下面右键单击new-->Python File并将py文件命名为test_pytest.py

4、在test_pytest.py文件里面敲入如下代码:

import pytestclass TestPyTest:def test_01_pytest(self):print('Hello, pytest!')if __name__ == '__main__':pytest.main()

5、右键单击该py脚本,选择红色标记2选项, 运行代码

6、代码运行完成后输出如下结果说明前面pytest安装环境成功

注意:上面第一个pytest脚本命名、类命名、函数(用例)命名都是有规定的,需要遵守一定的规则。这里如果你随意命名的话,有可能你的脚本是运行不了的。至于有哪些规则,接下来会做详细的阐述。


http://www.ppmy.cn/ops/133287.html

相关文章

DAY59||并查集理论基础 |寻找存在的路径

并查集理论基础 并查集主要有两个功能&#xff1a; 将两个元素添加到一个集合中。判断两个元素在不在同一个集合 代码模板 int n 1005; // n根据题目中节点数量而定&#xff0c;一般比节点数量大一点就好 vector<int> father vector<int> (n, 0); // C里的一…

C++开发基础之使用librabbitmq库实现RabbitMQ消息队列通信

1. 前言 RabbitMQ是一个流行的开源消息队列系统&#xff0c;支持多种消息协议&#xff0c;广泛用于构建分布式系统和微服务架构。可以在不同应用程序之间实现异步消息传递。在本文中&#xff0c;我们将熟悉如何使用C与RabbitMQ进行消息通信。 2. 准备工作 在 Windows 平台上…

docker构建jdk11

# 建立一个新的镜像文件&#xff0c;配置模板&#xff1a;新建立的镜像是以centos为基础模板 # 因为jdk必须运行在操作系统之上 FROM centos:7.9.2009# 作者名 MAINTAINER yuanhang# 创建一个新目录来存储jdk文件 RUN mkdir /usr/local/java#将jdk压缩文件复制到镜像中&#…

LinkedList和单双链表。

java中提供了双向链表的动态数据结构 --- LinkedList&#xff0c;它同时也实现了List接口&#xff0c;可以当作普通的列表来使用。也可以自定义实现链表。 单向链表&#xff1a;一个节点本节点数据下个节点地址 给定两个有序链表的头指针head1和head2&#xff0c;打印两个链表…

《人工智能网络安全现状(2024)》深度解读:机遇、挑战与应对策略

在当今数字化浪潮汹涌澎湃的时代&#xff0c;人工智能&#xff08;AI&#xff09;与网络安全已然深度交融&#xff0c;二者相互作用所塑造的发展态势正深刻重塑着我们的信息安全格局。《人工智能网络安全现状&#xff08;2024&#xff09;》这份报告恰似一盏明灯&#xff0c;为…

关于 JavaScript 对象不变性,你了解吗?

1. 基本概念 在 JavaScript 语言中&#xff0c;不变性&#xff08;Immutability&#xff09;是一个重要的概念。它指的是对象一旦创建后其状态就不能改变。在函数式编程中&#xff0c;不变性是实现纯函数的基础&#xff0c;因为它可以确保函数的输出只依赖于输入参数&#xff…

家里电脑ip地址怎么设置?详细指导

在家庭网络环境中&#xff0c;正确设置电脑的IP地址是确保设备能够顺利接入互联网以及实现局域网内设备间通信的基础步骤。对于大多数家庭用户而言&#xff0c;IP地址的设置通常是通过路由器自动分配&#xff08;动态IP&#xff09;来完成的&#xff0c;这得益于DHCP&#xff0…

RabbitMQ 与 PHP Swoole 实现

RabbitMQ 与 PHP Swoole 的结合实现 一、概述 RabbitMQ 是一个开源的消息队列中间件&#xff0c;允许通过异步消息传递来解耦应用程序的各个部分。Swoole 是一个高性能的 PHP 扩展&#xff0c;支持异步编程和协程&#xff0c;适用于构建高并发的网络服务。将 RabbitMQ 与 Swo…