【问题标题】:How to parametrize fixture before some test?如何在一些测试之前对夹具进行参数化?
【发布时间】:2022-07-13 23:12:05
【问题描述】:
from pytest import fixture

@fixture
def env():
    return {"key1": "value1", "key2": "value2"}


def do_work(env):
    print("working")


def test_0(env):
    do_work(env)


def test_1(env):
    env["key1"] = "new_value1"

    do_work(env)


def test_2(env):
    env["key2"] = "new_value3"

    do_work(env)

在示例中,我有 test_1test_2 执行相同的 do_work,但在调用它之前编辑夹具。如何使用参数化(或其他任何方法)来避免编写两个测试? 我不能按原样使用fixture parametrization,因为test_0 不需要参数化。

【问题讨论】:

    标签: python pytest fixtures parametrized-testing


    【解决方案1】:

    您可以使用parametrize,也可以使用How to parametrize a Pytest fixture

    @pytest.mark.parametrize("key, value", (
            ("key1", "new_value1"),
            ("key2", "new_value2")
    ))
    def test_1(env, key, value):
        env[key] = value
    
        do_work(env)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      相关资源
      最近更新 更多