Я изучаю параметризованные тесты с помощью pyest. Следуя соответствующей документации по pytest, я придумал это простой пример:
import unittest
import pytest
@pytest.fixture(autouse=True, params=['foo', 'bar'])
def foo(request):
print('fixture')
print(request.param)
class Foo(unittest.TestCase):
def setUp(self):
print('unittest setUp()')
def test(self):
print('test')
Это дает следующую ошибку:
Failed: The requested fixture has no parameter defined for the current test.
E
E Requested fixture 'foo' defined in:
E tests/fixture.py:7
Строка 7 — def foo(request):
.
Что вызывает эту ошибку и как ее исправить?
@pytest.mark.parametrise('request', ['foo', 'bar'])
. Это не отвечает на ваш вопрос, но может работать как быстрое решение (гдеrequest
- это имя аргумента) - person Artyer   schedule 22.08.2017request
. Методtest()
не имеет аргументов (кромеself
). Я хочу, чтобы фикстура применялась ко всем тестам в классеFoo
. В примере есть только один тест, но потенциально их может быть больше. - person Code-Apprentice   schedule 22.08.2017