猿创征文|Python基础——Visual Studio版本——pytest

简介: 猿创征文|Python基础——Visual Studio版本——pytest

pytest概述

Pytest是一个使创建简单及可扩展性测试用例变得非常方便的框架。测试用例清晰、易读而无需大量的繁琐代码。只要几分钟你就可以对你的应用程序或者库展开一个小型的单元测试或者复杂的功能测试。pytest支持第三方插件,灵活性较高。


pytest特点

非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考

能够支持简单的单元测试和复杂的功能测试

支持参数化

执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败

支持重复执行(rerun)失败的case

支持运行由nose, unittest编写的测试case

可生成html报告

方便的和持续集成工具jenkins集成

可支持执行部分用例

具有很多第三方插件,并且可以自定义扩展

环境安装

直接安装pip install pytest就行。


image.png


文件不是很大,很快就下载完毕。

image.png



版本查看命令


pip show pytest

image.png



注意点

测试文件以test_开头(以_test结尾也可以)

测试类以Test开头,并且不能带有 init 方法

测试函数以test_开头

断言使用基本的assert即可

控制台基础示例

# 基础函数用于输入值
def test(x):
    return x +1
# 测试函数是由test_开头的,这里assert断言是判断结果与目标返回是否相同
def test_answer():
    assert test(3)==5

基础示例使用:


可以在提示中看到,执行100%,但是出现了ERROR。第八行的结果与预期结果不符,这就代表测试用例未通过。


如果无法使用,请更换命令【python -m pytest 类名.py】,这里不限制test_开头或_test结尾。

image.png



如果是通过则会告知passed


# 基础函数用于输入值
def test(x):
    return x +1
# 测试函数是由test_开头的,这里assert断言是判断结果与目标返回是否相同
def test_answer():
    assert test(3)==4

image.png


执行示例

文件名称【test_demo.py】,文件名必须是test_开头


import pytest
class TestClass:
    def test_one(self):
        x = "this"
        assert "h" in x
    def test_two(self):
        x = "hello"
        assert len(x)==5
if __name__ == '__main__':
    pytest.main()

示例中能看到

image.png



但是依然建议使用cmd控制台。

image.png


pytest.main()

pytest.main()会自动读取当前目录下的所有test开头的.py文件,运行test方法或者类。


pytest的参数,例如:pytest -sv test_demo.py

-x 用例一旦失败,就立刻停止执行

--maxfile=num 用例达到多少停止执行

-m 标记用例

-k 执行包含某个关键字的测试用例

-v 打印详细日志

-s 打印输出日志 和v连用

--lf 只重新运行失败的用例

--ff 先运行失败的用例再运行正常的用例

套件执行顺序

image.png


装饰器

skip  : 跳过这个用例


reason:注释/备注


# 跳过这个用例skip装饰器
@pytest.mark.skip(reason = "暂时不执行")
def test_case2():
    print("3这里是case2\n")

image.png

判断语句

不需要二次计算



# -*-coding:utf-8 -*-
import pytest
def test_A(x=2):
    print("%d**%d=%d",x,x,x**x)
    return x**x
@pytest.mark.skipif(test_A() == 4 ,reason="正确不需要二次计算")
def test_B(x=2):
    print("二次计算结果:",(x**x))
    return x**x

image.png

需要二次计算


# -*-coding:utf-8 -*-
import pytest
def test_A(x=3):
    print("%d**%d=%d",x,x,x**x)
    return x**x
@pytest.mark.skipif(test_A() == 4 ,reason="正确不需要二次计算")
def test_B(x=2):
    print("二次计算结果:",(x**x))
    return x**x

image.png


可以自行多搞一些demo做示例。  

相关文章
|
2月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
296 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
2月前
|
Python Windows
查看Python版本
【10月更文挑战第8天】查看Python版本
35 2
|
2月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
377 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
2月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
442 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
3月前
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
74 6
基于Python访问Hive的pytest测试代码实现
|
3月前
|
开发者 Python
Python 的主流版本:Python 3.x
Python 的主流版本:Python 3.x
106 2
|
3月前
|
Linux 编译器 开发工具
快速在linux上配置python3.x的环境以及可能报错的解决方案(python其它版本可同样方式安装)
这篇文章介绍了在Linux系统上配置Python 3.x环境的步骤,包括安装系统依赖、下载和解压Python源码、编译安装、修改环境变量,以及常见安装错误的解决方案。
250 1
|
4月前
|
Web App开发 安全 测试技术
自动化测试中的Python魔法:使用Selenium和pytest框架
【8月更文挑战第31天】 在软件开发的海洋中,自动化测试是确保航行安全的灯塔。本文将带你探索如何利用Python语言结合Selenium和pytest框架,搭建一套高效的自动化测试体系。我们将从基础设置讲起,逐步深入到编写测试用例,最后通过一个实战案例来展示如何在实际项目中运用这些工具。文章旨在为读者提供一套清晰的自动化测试解决方案,让你的开发之旅更加顺畅。
|
6月前
|
Linux 数据库管理 Python
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
805 4
|
Linux iOS开发 MacOS
【Python入门】Python搭建编程环境-安装Python3解释器(内含Windows版本、MacOS版本、Linux版本)
【Python入门】Python搭建编程环境-安装Python3解释器(内含Windows版本、MacOS版本、Linux版本)