1
注入值我有这种风格的测试模块:全球灯具,从当前模块
#test_mammals.py:
PETS = ['cats', 'dogs']
def test_mammals_1(pet):
assert 0, pet
def test_mammals_2(pet):
assert 0, pet
在这里,另一个问题:
#test_birds.py:
PETS = ['budgie', 'parrot']
def test_birds_1(pet):
assert 0, pet
def test_birds_2(pet):
assert 0, pet
而且我想定义夹具“宠物”只曾经:
#conftest.py:
import pytest
@pytest.fixture(scope='module', autouse=True)
def getpets(request):
return getattr(request.module, 'PETS', [])
@pytest.fixture(scope='module', params=getpets, autouse=True)
def pet(request):
return request.param
不幸的是,这不起作用,因为“宠物”期望“params”列表。但是如果我把“getpets”放到一个列表中,那么ficture将会返回一个指向“getpets”的指针,而不是来自相应模块的“PETS”的值。