在Pytest框架中存在一些内置固件,不需要单独编写代码,可以直接使用。不仅能大幅简化测试工作,还能提高测试效率。
使用命令pytest --fixtures或者pytest --funcargs可以查看所有可用的fixture,包括内置的、插件中的以及当前项目定义的。
下面介绍一些常用固件:Tmpdir、tmpdir_factory、cache。
一、Tmpdir和tmpdir_factory固件
Tmpdir和tmpdir_factory用于临时文件和目录的管理,在测试开始前创建临时文件目录,并且在测试结束后销毁,适用于在测试过程中需要创建一个临时文件,并且对文件进行读写操作的场景。
tmpdir的作用范围是函数级别;tmpdir_factory的作用域是会话级别。
1、tmpdir的使用
看下面一个示例:测试方法在执行过程中创建临时目录和文件,在文件中写入数据,断言数据是否存在于临时文件中。
import pytest
def test_tmpdir(tmpdir):
tmp_dir = tmpdir.mkdir('testdir') #创建一个临时目录
tmp_file = tmp_dir.join('tmpfile.txt') #在临时目录下创建一个临时文件
tmp_file.write('这是一个临时文件') #在临时文件中写入数据
assert tmp_file.read() == '这是一个临时文件'
i