pytest根据灯具的值动态设置测试参数

时间:2020-03-02 10:00:58

标签: python unit-testing pytest

我需要使用范围a值对我的测试进行参数化-这些值是根据其他灯具从计算得出的。

例如:

@pytest.fixture
def another_fixture():
    return value

@pytest.fixture
def expensive_op(another_fixture):
    return value * another_fixture

@pytest.mark.parametrize('idx', range(expensive_op))
def test_justwork(expensive_op, idx)
    pass

现在,我知道pytest不支持它,但是我真的很想利用这样的参数化,因此该测试可以破坏多个较小的测试,而不是一个大型测试。 另外,我不想将这些灯具转换为普通功能,因为:

  1. 丑陋,破坏了固定装置方案
  2. 夹具的操作非常昂贵,我不想重复两次(在测试过程中我仍然需要它)

无论如何,是否有实现这一目标的“ hackish”?我已经看到了使用globals()注入治具的方法,但是如果一个治具是一个注入治具的方法(那太晚了),那似乎就行不通了。

0 个答案:

没有答案