pytest学习记录
测试文件名必须以test_
开头或者_test
结尾,可大写也可小写
测试函数必须以test
开头,严谨一致
测试类必须以Test
开头,严谨一致
pytest
内置函数:
.`tmp_path`(唯一临时目录)
.
查看更多内置函数:pytest --fixtures
通过pytest --trace-config
命令可以查看当前pytest中所有的plugin
- 只想测试某些测试用例:使用
-k
模糊匹配 - 跳过个别测试用例:
@pytest.mark.skip()
- 捕捉异常:
pytest.raises
- 多组数据测试:
@pytest.mark.parametrize(argnames, argvalues)
,例:@pytest.mark.parametrize('data', [1, 2, 3])
- 更细跟踪固件执行:
--setup-show
- 阻止消息被吞:
-s
- 内置固件:
request
,其属性param
- 使用
pytestconfig
,可以很方便的读取命令行参数和配置文件 - 执行标记测试用例:
pytest.mark.finished
、pytest.mark.unfinished
模块级、函数级、类级、方法级
模块级别:在当前模块中的所有测试用例执行之前以及执行之后仅会执行一次(setup_module/teardown_module
)
函数级别:在每个函数测试用例执行之前会执行一次(setup_function/teardown_function
)
类级别:测试类中的所有测试用例执行之前仅执行一次(setup_class/teardown_class
)
方法级别:测试类中的每个测试用例执行之前会执行一次(setup_method/teardown_method
)
fixture的conftest.py
测试固件对象的调用方法有3种:
-
直接作为测试函数或者测试类中的方法参数传入,就是要写自定义固件
@pytest.fixture
接自定义函数,然后将自定义函数名传给测试的方法。 -
使用pytest.mark.usefixture装饰测试函数或者测试方法。注意:此方法的测试固件需要通过全局变量来进行传递。
-
直接通过测试固件自带的属性autouse完成固件的应用操作,只需要将autouse的值设置为True,测试函数和方法可以直接调用其声明的全局对象。
本文来自博客园,作者:27岁的太阳,转载请注明原文链接:https://www.cnblogs.com/isxjj/p/15774945.html