pytest属于第三方库,使用前,请先安装:pip install pytest
对于单元测试框架的核心功能:- 收集用例,进入目录,运行 pytest 指令
cd 目录路径:进入目录
pytest:执行测试用例
- 制定用例函数的定义规则,以test开头支持普通函数,测试类
"""pytest用例编写规则很灵活:
1、直接定义函数,不需要测试类
2、编写测试类,不继承unittest.TestCase
3、编写测试类,继承unittest.TestCase,可以直接迁移(兼容)
测试函数还是test_开头
"""
import unittest
def test_pytest_1():
pass
class TestPytest2:
def test_pytest_2(self):
pass
class TestPytest3(unittest.TestCase):
def test_pytest_3(self):
pass
- 自动执行用例,如果不能识别用例,需要修改pycharm默认的执行器改成pytest
- 前置和后置夹具
1)如果继承了unittest.TestCase,所有东西都不需要修改,直接使用就可以
2)如果不继承unittest.TestCase,使用pytest自己的前置和后置
import pytest
# 声明这是一个夹具,这个夹具就是个函数
@pytest.fixture()
def fixt():
# setUp
print("每次测试都会执行的")
# yield 分割线 前置和后置
yield
# tearDown
print("每次测试用例后都会执行的")
class TestFixture:
# 调用夹具
def test_fixture(self, fixt):
assert 1 + 1 == 2
class TestFixture1:
# 调用夹具
def test_fixture1(self, fixt):
assert 1 + 1 == 2
运行结果:
- 断言
assert 表达式
def test_pytest_1():
actual = 1
expected = 2
assert expected == actual
运行结果:
- 生成测试报告
需要安装第三方库支持生成测试报告:pip install pytest-html
进入目录,运行 pytest --html=report.html 指令,生成report.html名称的报告,浏览器中查看:
注意:
pytest和unittest是可以兼容的,如果之前用的是unittest框架编写代码,pytest命令行运行就可以了。



