福建网站建建设方案,单一产品销售网站建设模板,阎良建设局 网站,新公司董事长致辞做网站fixture特性 夹具是在测试中用于提供共享资源、设置测试环境或模拟行为的工具。 1. 可以重复使用#xff0c;多个用例可以使用同一个fixture
2. 一个测试用例可以使用多个装置
import pytest
# Arrange
pytest.fixture
def first_entry():return a# Arrange
pyt…fixture特性 夹具是在测试中用于提供共享资源、设置测试环境或模拟行为的工具。 1. 可以重复使用多个用例可以使用同一个fixture
2. 一个测试用例可以使用多个装置
import pytest
# Arrange
pytest.fixture
def first_entry():return a# Arrange
pytest.fixture
def second_entry():return 2# Arrange
pytest.fixture
def order(first_entry, second_entry):return [first_entry, second_entry]2.1 如果多个装置存在yield,则是先进后出
import pytestpytest.fixture
def a():print(hello)yieldprint(this is a)pytest.fixture
def b():print(world)yieldprint(this is b)def test_demo(a, b):print(this is test_demo)if __name__ __main__:pytest.main([-sv, test1.py])3. fixture的返回值不需要接收
如果一个fixture存在返回值那么可以通过函数名直接使用其返回值,如下所示
import pytest
pytest.fixture
def first_entry():return adef test_a(first_entry):print(first_entry)if __name__ __main__:pytest.main([-sv,test1.py])4. fixfure多重嵌套
如下append_first、test_string_only并且此fixture缓存即order根据gpt即我的测试 如果一个 fixture 被请求了多次但它的作用范围是函数级别默认那么这个 fixture 在每次请求时都会重新执行一次而不会缓存。这会导致每次请求获得的数据都是独立的不受前一次请求的影响。 所以一般不要使用缓存保证起独立性 import pytest# Arrange
pytest.fixture
def first_entry():return a# Arrange
pytest.fixture
def order():return []# Act
pytest.fixture
def append_first(order, first_entry):order.append(first_entry)return orderdef test_string_only(append_first, order, first_entry):# Assertprint(append_first) # [a]print(order) [a]assert order [first_entry]pytest.main([-sv, test1.py])5自动使用fixture不需要请求
设置和清理环境、全局配置例如数据库连接、日志设置等可以使用笔者用的不多
import pytestpytest.fixture
def first_entry():return apytest.fixture(autouseTrue)
def order():return hello worlddef test_a(order):print(order)pytest.main([-sv, test1.py])6 动态定义fixture范围
7 安全拆卸的fixture
8fixture的request
9 fixture的参数化