20210408-一节课轻松入门最火的 pytest 测试框架

pytest 介绍

安装
pip install pytest

pytest 用例的编写

用例编写规范

  • 测试文件以 test_ 开头(以 _test 结尾也可以)
  • 测试类以 Test 开头,并且不能带有 init 方法
  • 测试函数以 test_ 开头

pytest 进阶

# -*- coding: utf-8 -*-
# @Author : feier
# @File : test_calc.py
import pytest

from calc import Calculator

def test_function():
    pass

@pytest.fixture(scope="class")
def get_calc():
    print("获取计算器实例")
    # 实例化计算器类
    calc = Calculator()
    return calc

@pytest.fixture()
def print_log():
    print("开始计算")
    yield
    print("计算完毕")

@pytest.fixture(autouse=True)
def database():
    print("连接数据库")
    yield
    print("断开数据库")

class TestCalc:

    # def setup_class(self):
    #     print("计算开始")
    #     # 实例化计算器类
    #     self.calc = Calculator()
    #
    # def teardown_class(self):
    #     print("计算完毕")

    @pytest.mark.parametrize(
        "a, b, expect",
        [
            (1, 1, 2),
            (0.1, 0.1, 0.2),
            (-1, -1, -2)
        ], ids=['int','float','negative']
    )
    def test_add(self, get_calc, a, b, expect):
        result = get_calc.add(a, b)
        # 得到相加结果之后,写断言
        assert result == expect

    @pytest.mark.usefixtures('print_log')
    def test_add1(self, get_calc):
        result = get_calc.add(0.1, 0.1)
        # 得到相加结果之后,写断言
        assert result == 0.2

    def test_add2(self, get_calc):
        # 实例化计算器类
        # calc = Calculator()
        result = get_calc.add(-1, -1)
        # 得到相加结果之后,写断言
        assert result == -2