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