pytest使用报错(以及解决pytest所谓的“抑制print输出”)

1. 测试类的类名问题

python 复制代码
#coding=utf-8

import pytest

class TestClass1:
    def setup(self) -> None:
        print('setup')

    def test_01(self) -> None:
        print('test_01111111111111111111111')

    def test_02(self) -> None:
        print('test_02')

以上述代码为例,如果类名是Test开头,可以正常运行,并且输出print的内容,

如果以Test结尾

python 复制代码
# coding=utf-8

import pytest


class Class1Test:
    def setup(self) -> None:
        print('setup')

    def test_01(self) -> None:
        print('test_01111111111111111111111')

    def test_02(self) -> None:
        print('test_02')

代码可以运行,但是结果会报错

所以,必须严格按照要求,测试类的文件名 以 test_ 开头进行命名,测试类 以 Test 开头进行命名,测试方法以 test_ 开头进行命名

2. setup方法

如果有需要调用其他实体类在setup中进行实例化的,需要按照要求,以实际需要进行命名,不能直接写set方法,会找不到具体的类。

2.1 模块级别 setup_module()

模块级别,执行所有的测试用例之前会执行一遍,有且只有一次

2.2 函数级别 setup_function()

class类之外的函数执行一次,这个setup就会执行一次

2.3 类级别 setup_class()

类执行一次,就会执行一次

2.4 方法级别 setup_method()

类中的方法执行一次,就会执行一次

2.5 举例

python 复制代码
#coding=utf-8
import pytest

def setup_module(module):
    print("初始化=================模块")

def teardown_module(module):
    print("清理===================模块")

def setup_function(module):
    print("初始化=================函数")

def teardown_function(module):
    print("清理===================函数")

def test_01():
    print("类外的函数方法1=========")
    assert 1+2==3

def test_02():
    print("类外的函数2=========")
    assert 3+2==5

class TestClass1:
    def setup_class(self):
        print("初始化==============类1")

    def teardown_class(self):
        print("清理================类1")

    def setup_method(self):
        print("初始化1==============方法")

    def teardown_method(self):
        print("清理1================方法")

    def test_1_01(self):
        print("类1 的 测试方法 1 ")
        assert 1+1 ==2

    def test_1_02(self):
        print("类1 的测试方法 2")
        assert 1+2 == 3

代码运行结果为

  • 模块级别setup
    • 函数setup1
    • 函数teardown1
    • 函数setup2
    • 函数teardown2
    • 类级别setup
      • 方法setup1
      • 方法teardown1
      • 方法setup2
      • 方法teardown2
    • 类级别teardown
  • 模块级别teardown
相关推荐
我的xiaodoujiao17 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--将自动化测试结果自动推送至钉钉工作群聊
前端·python·测试工具·ui·pytest
我的xiaodoujiao19 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 45--生成项目需要的requirements.txt依赖文件
python·学习·测试工具·pytest
月明长歌21 小时前
全栈测试修炼指南:从接口策略到 Python+Pytest+Allure 企业级架构
python·架构·pytest
一晌小贪欢1 天前
Python 测试利器:使用 pytest 高效编写和管理单元测试
python·单元测试·pytest·python3·python测试
我送炭你添花2 天前
Pelco KBD300A 模拟器:20.搭建pytest集成测试基础框架 + 模拟器闭环测试
python·集成测试·pytest
我送炭你添花3 天前
Pelco KBD300A 模拟器:18. 按依赖顺序 + 复杂度由低到高逐步推进pytest单元测试
python·单元测试·log4j·pytest
生活很暖很治愈3 天前
Pytest-order插件
python·测试工具·测试用例·pytest
测试人社区—66795 天前
2025区块链分层防御指南:AI驱动的安全测试实战策略
开发语言·驱动开发·python·appium·pytest
我送炭你添花6 天前
pytest 入门指南:从零开始掌握 Python 测试框架的核心概念与使用方法
chrome·python·pytest
though the night6 天前
Python UI 自动化测试框架搭建demo(Selenium+Pytest 版)
自动化测试·selenium·测试工具·pytest