主要从官网上面学习。
pytest fixtures: 显示化、模块化、可扩展
软件测试fixtures初始化测试函数。fixtures提供了固定基线,以便测试可靠执行并产生一致的、可重复的结果。初始化可启动服务、状态或其他可操作环境。测试函数通过参数来访问,对于每个测试函数使用的fixture,通常在测试函数的定义中都有一个参数(以fixture命名)。
pytest fixtures在传统的setup/teardown函数的xUnit样式上有重大改进:
··fixtures有明确的名字,并且通过从测试函数、模块、类或整个项目中声明其使用方法来激活。
··fixtures以模块化的方式来实现,每个fixture名称会触发一个fixture function,该fixture function本身也可以使用其他fixtures。
··fixture管理范围从简单的unit到复杂的功能性测试,可以根据配置和组件选项来对fixtures和tests进行参数化,或者在函数、类、模块或整个测试会话范围内重复使用fixture。
此外,pytest继续支持传统xuint样式设置。你可以混合两种,并根据需要从传统样式逐步过渡到新的样式,也可以从现有的unittest.TestCase或nose based项目开始。
Fixtures使用@pytest.fixture装饰器来定义,如下描述。pytest有内置fixtures,如下列出:这块还没有搞懂怎么操作
捕获,作为文本输出到文件描述符1和2
捕获,作为字节输出到文件描述符1和2
控制日志记录和访问日志条目。
捕获,作为文本的输出到sys.stdout和sys.stderr。
捕获,作为字节的输出到sys.stdout和sys.stderr。
cache
在pytest运行期间存储和检索值。
提供一个插入docstests命名空间的字典。
临时修改类,函数,字典,os.environ和其他对象。
访问配置值,插件管理和插件挂钩。
向测试中添加其他属性。
向测试套件中添加其他属性。
记录测试函数发出的警告。
提供有关正在执行的测试函数的信息。
提供一个临时测试目录,以帮助运行和测试pytest插件。
提供pathlib.Path对象给每个测试函数唯一的临时目录。
创建会话范围的临时目录并返回pathlib.Path对象。
为每个测试函数唯一的临时目录提供py.path.local对象; 由tmp_path代替。
创建会话范围的临时目录并返回py.path.local对象; 由tmp_path_factory代替。