2013-11-14 2 views
1

Можно ли передавать светильники на испытания генераторного генератора?py.test 2.3.5: генеративные тесты, которые используют светильники?

import py.test 

@py.test.fixture(scope="module") 
def fixture(): 
    return True 

def test_1(fixture): 
    def checker(datum): 
     assert datum == fixture 
    for i in [True, True, True]: 
     # Does not work. 
     yield checker, i 
     # Does work. 
     #checker(i) 

Приведенный выше код производит

>  for i, x in enumerate(self.obj()): 
      name, call, args = self.getcallargs(x) 
E   TypeError: test_1() takes exactly 1 argument (0 given) 

Мы используем py.test 2.3.5 из Debian.

ответ

3

Не знаю, что именно должно быть yield внутри определения теста.

Существует yield в светильниках Fixture functions using “yield”/context manager integration, который работает не так, как ожидается вначале.

Если вы хотите перебрать тот же тест по последовательности светильников, вероятно, нужно Parametrizing a fixture

+0

Предполагалось создать ряд тестов для набора параметров. Как-то я использовал его, потому что видел его в нескольких блогах, но, похоже, этот подход устарел в пользу '@ pytest.mark.parametrize'. –

Смежные вопросы