5、Pytest前后置处理函数Fixture简介

前言

Fixture是pytest的核心功能,也是亮点功能.属装饰器函数(在不改变被装饰函数的前提下对函数进行功能增强),用于在测试用例运行之前进行前后置工作处理工作。与setup/teardown类似,但更强大灵活

Fixture简介

Fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture提供了区别于传统单元测试(setup/teardown)有显著改进:

  1. 有独立的命名,并通过声明它们从测试函数、模块、类或整个项目中的使用来激活。
  2. 按模块化的方式实现,每个fixture都可以互相调用。
  3. fixture的范围从简单的单元扩展到复杂的功能测试,允许根据配置和组件选项对fixture和测试用例进行参数化,或者跨函数function、类class、模块module或整个测试会话sessio范围。

Fixture工作原理

  1. @Pytest.fixture()装饰器用于声明函数是一个fixture
  2. 如果测试函数的参数列表中包含fixture装饰的函数名
  3. 那么pytest就会检测到然后在测试函数运行之前执行该fixture
  4. 如果fixture装饰的函数有返回值,那么fixture在完成任务后,将数据再返回给测试函数,相当于传参

Pytest搜索fixture的顺序

  1. 测试用例的参数列表中包含一个fixture名,pytest会用该名称搜索fixture
  2. 优先搜索测试所在的模块
  3. 然后再搜索模块同一文件路径下的conftest.py
  4. 找不到再搜索上一层的conftest

你可能感兴趣的:(pytest读书笔记,python)