前言
目前比较流行的Python的单元测试框架有Unittest和Pytest,但是由于Pytest支持各种插件,比Unittest使用简单,效率更高,使得Pytest脱颖而出。Pytest的官方文档地址:https://docs.pytest.org/en/latest/
一、Pytest的安装
在终端通过Pip命令安装即可
pip3 install -U pytest
安装完成后可通过 python3 -m pytest --version 查看pytest的版本
二、Pytest测用例编写
测试用例一般遵循三大原则:
1、测试文件以test_开头,比如test_login.py
2、测试类一般以Test开头,比如 TestLogin
3、测试方法test开头,每一个测试方法就是一个测试用例,比如test_login,例子如下
三、Pytest测试用例执行
Pytest测试用例执行有两种方式
1.主函数模式
1.运行所有的用例:pytest.main()
2. 指定模块运行:pytest.main(['-vs', 'test_login.py'])
3.指定目录:pytest.main(['-vs','./interface_testcase'])
4.通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名 组成,比如:
pytest.main(['-vs','./interface_testcase/test_interface.py::test_04_func'])
pytest.main(['-vs','./interface_testcase/test_interface.py::TestInterface::test_04_func'])
命令行模式
1.运行所有的用例:pytest
2.指定模块运行:pytest -vs test_login.py
3.指定目录:pytest -vs ./interface_testcase
4.通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名 组成
pytest -vs ./interface_testcase/test_interface.py::TestInterface::test_04_func
两种运行的情况如下:
第一种 主函数模式
第二种 命令行模式
进行测试用例所在的工程目录 ,执行命令 pytest -vs test_demo.py,执行的情况如下
四、测试用例的前置和后置
Pytest的前置后置主要通过setup/teardown/setup_class/teardown_class函数实现,前置就是测试用例的前置条件,后置一般就是测试用例执行完成后,清理环境等操作,代码如下:
代码语言:javascript复制#!/usr/bin/python
# -*- coding: utf-8 -*-
import pytest
class TestDemo:
def setup(self):
print("每次执行测试用例前执行n")
def teardown(self):
print("每次执行行测试用例后执行n")
def setup_class(self):
print("每个测试类执行前执行一次n")
def teardown_class(self):
print("每个测试类执行完成后执行一次n")
def test_demo(self):
a = 1
b = 1
assert a == b
def test_demo1(self):
a = 1
b = 2
assert a != b
if __name__ == "__main__":
pytest.main(['-vs', 'test_demo.py'])
执行测试用例效果如下:
由此可以看到
setup是每个测试用例前都执行
teardown是每个测试用例后都执行
setup_class 是每个测试类前执行一次
Teardown_class 是每个测试类后执行一次
今天的Pytest知识点就讲到这里,后续会继续更新Pytest相关的用法!