python @pytest.fixture示例及用法

python @pytest.fixture示例及用法

@pytest.fixture 是 pytest 测试框架中的一个非常有用的功能,它允许你定义可以在多个测试用例之间共享的设置和清理代码。通过使用 fixture,你可以减少重复的代码,并使得测试用例更加清晰和模块化。

下面是一个简单的示例,展示了如何使用 @pytest.fixture

复制import pytest  
  
# 定义一个 fixture  
@pytest.fixture  
def setup_data():  
    # 这里是设置代码,例如创建一些测试数据  
    data = [1, 2, 3, 4, 5]  
    return data  
  
# 使用 fixture 的测试用例  
def test_sum(setup_data):  
    # setup_data 是从 fixture 中获取的  
    assert sum(setup_data) == 15  
  
def test_length(setup_data):  
    # 同样,这里也使用了 setup_data fixture  
    assert len(setup_data) == 5

在这个例子中,我们定义了一个名为 setup_data 的 fixture,它返回一个包含一些数字的列表。然后,我们在两个测试用例 test_sumtest_length 中使用了这个 fixture。pytest 会自动调用 fixture 函数,并将返回的值传递给使用它的测试用例。

你还可以给 fixture 添加参数,使得它可以更加灵活:

复制@pytest.fixture(params=[1, 2, 3])  
def number(request):  
    return request.param  
  
def test_number(number):  
    assert number > 0

在这个例子中,number fixture 使用 params 参数来指定多个可能的返回值。pytest 会为每个参数值运行一次 test_number 测试用例。

此外,你还可以使用 scope 参数来指定 fixture 的作用域。例如,scope="module" 意味着 fixture 将在整个模块的所有测试用例之间共享。默认值是 "function",意味着 fixture 将在每个测试用例之间独立运行。

这只是 @pytest.fixture 的基本用法。pytest 的 fixture 功能非常强大,还可以与其他插件和钩子函数结合使用,实现更复杂的设置和清理逻辑。

posted @   乐乐乐乐乐乐樂  阅读(99)  评论(0编辑  收藏  举报
jQuery火箭图标返回顶部代码
点击右上角即可分享
微信分享提示