1、安装pytest
- 在cmd命令行以下命令:
pip install -U pytest
- 检查你安装的版本是否正确:
pytest --version
2、命名规则
所有单测文件名以test_*.py或者*_test.py命名,pytest将会运行当前目录或者子目录下所有这些文件。
测试类以Test作为类的前缀,不能带init方法
测试类可以包含一个或多个带有test_前缀的函数,并且执行顺序按Ascii码字符集
3、第一次运行demo
# 文件名:test_demo.py
import pytest
class TestDemo:
def test_01(self):
assert 1 # 断言成功
def test_02(self):
assert 0 # 断言失败
输出结果:
4、调用pytest方式
4.1、测试类主函数模式
if __name__ == '__main__':
pytest.main("-s test_abc.py") # 调用pytest的main函数执行测试
4.2、命令行模式
pytest 文件路径/测试文件名 # 例如:pytest ./test_demo.py
pytest -q 文件路径/测试文件名 # -q使结果简洁格式输出
4.3、控制测试用例执行
4.3.1、按模块执行测试用例
pytest test_mod.py
4.3.2、按目录名执行当前目录下的所有测试用例
pytest testing/
4.3.3、按关键字执行测试
pytest -k "MyClass and not method"
# 将执行TestMyClass.test_something而不是testmyclass.test_method_simple
# 执行包含与给定字符串表达式(大小写不敏感)匹配的名称的测试用例,其中可以包括文件名、类名和函数名
4.3.4、按node id执行测试
该nodeid由模块文件名后面跟类名、函数名和参数化参数等说明符组成,用::字符分隔。
- 执行指定的类:
pytest test_mod.py::test_func
例如:
pytest test_demo.py::TestDemo1
- 执行指定的函数:
pytest test_mod.py::TestClass::test_method
例如:
pytest test_demo.py::TestDemo::test_01
4.3.5、按标记表达式执行测试
pytest -m slow
# 将执行使用@pytest.mark.slow装饰器的所有测试用例
4.3.6、按包名执行测试
pytest --pyargs pkg.testing
5、管理插件
- 查看插件
可以在命令行中使用-p选项查看下载的插件(内部和外部):
pytest -p mypluginmodule
- 禁用插件:
禁用指定的插件使用-p no:选项
pytest -p no:doctest
# 禁用doctest插件