猿创征文|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做示例。  

相关文章
|
10月前
|
人工智能 数据安全/隐私保护 Python
小红书图文生成器,小红书AI图文生成工具,python版本软件
Pillow库自动生成符合平台尺寸要求的配图7;3)利用Playwright实现自动化发布流程6。
|
11月前
|
Ubuntu 安全 API
Python3.14正式支持Free Threaded版本!
Python 社区迎来历史性时刻!Python 3.14 正式将无 GIL 构建列为受支持选项,标志着 Free‑Threaded Phase II 启动。本文将深入解析 PEP 779 规定的支持标准、3.14.0b3 版本的新变化,以及这对Python开发者意味着什么。文末还有小彩蛋哦!
1738 87
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
801 7
|
10月前
|
API 数据安全/隐私保护 开发者
企业微信自动加好友软件,导入手机号批量添加微信好友,python版本源码分享
代码展示了企业微信官方API的合规使用方式,包括获取access_token、查询部门列表和创建用户等功能
|
Ubuntu Shell Linux
pyenv 管理多个 Python 版本(1)
pyenv 管理多个 Python 版本(1)
637 86
pyenv 管理多个 Python 版本(1)
|
Shell Python
使用 pyenv 来管理多个 Python 版本(2)
使用 pyenv 来管理多个 Python 版本(2)
556 71
使用 pyenv 来管理多个 Python 版本(2)
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
801 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
8月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1329 102
|
8月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
473 104
|
8月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
366 103

推荐镜像

更多