Я пытаюсь запустить те же тестовые примеры с различными методами setUp. Я пробовал использовать nosetests и параметризован, но похоже, что он не поддерживает параметризацию методов setUp. Вот пример того, что я пытаюсь сделать:Как параметризовать метод setUp python unittest?
...
from nose_parameterized import parameterized
class Example(unittest.TestCase):
@parameterized.expand(['device1', 'device2'])
def setUp(self, device):
desired_caps = {}
desired_caps['key1'] = device
desired_caps['key2'] = 'constant value'
self.driver = webdriver.Remote(url, desired_caps)
def tearDown(self):
self.driver.quit()
def test_app_launch(self):
# assert something
Ошибка: TypeError: setUp() takes exactly 2 arguments (1 given)
.
Есть ли другой способ, как параметризовать метод setUp? Я также изучал генераторы носететов, но, похоже, это не так.
Вы имеете в виду, что я должен передать устройство в тест через аргумент командной строки? – finspin
Вы могли бы, я не уверен, как вы устанавливаете тесты. Я хочу сказать, что устройство никогда не менялось во время тестов, поэтому нет смысла назначать его снова и снова. Один раз во время настройки класса хорошо, и класс должен тестировать разные устройства с разными прогонами (при условии, что все устройства должны пройти все тесты). –
Вызов тестового файла несколько раз, всегда с разными значениями параметров - это то, чего я пытаюсь избежать из-за целей отчетности. Мне нужно иметь только один отчет, содержащий все устройства, чтобы я мог включить его в рабочий процесс непрерывной интеграции. Выполнение этих тестов с помощью nosetests и параметризацией приведет к такому результату, только если он хорошо сыграет с параметризацией метода setUp. – finspin