В unittest я могу установить переменные в классе, а затем методы этого класса могут выбрать любую переменную, которую он хочет использовать...
class test_class(unittest.TestCase):
def setUp(self):
self.varA = 1
self.varB = 2
self.varC = 3
self.modified_varA = 2
def test_1(self):
do_something_with_self.varA, self.varB
def test_2(self):
do_something_with_self_modified_varA, self.varC
Таким образом, в unittest легко было собрать вместе множество тестов, которые могли бы проходить под одним классом, а затем использовать множество разных переменных (varA и varB) для разных методов. В pytest я создал приспособление в conftest.py вместо класса в unittest, как это...
@pytest.fixture(scope="module")
def input1():
varA = 1
varB = 2
return varA, varB
@pytest.fixture(scope="module")
def input2():
varA = 2
varC = 3
return varA, varC
Я передаю этот вход 1 и input2 в мои функции в другом файле (скажем, test_this.py) для двух разных функций. Вот вопросы, основанные на информации выше...
-
Так как я не могу просто объявлять локальные переменные в conftest.py, так как я не могу просто импортировать этот файл. Есть ли лучший способ объявления различных переменных здесь, которые могут использоваться в разных функциях в test_this.py? У меня есть пять различных конфигураций в моем фактическом тестировании для этих переменных, определяющих, что много разных приборов в conftest.py и использовать их как аргумент функции в пяти различных функциях в test_this.py звучит болезненно, я скорее вернусь к unittest структуре класса, определит мои переменные и выбрать и выбрать то, что я хочу
-
Должен ли я просто объявлять глобальные переменные в test_this.py и использовать их в функциях так, как я хочу? Кажется немного не питоническим. Эти переменные используются только в этом файле.
-
Скажем, у меня есть test_that.py и test_them.py. Если у меня есть общие переменные между этими разными файлами, как я могу их объявить? просто создайте файл calle variables.py в каталоге, где находятся все эти тестовые файлы, и выполняйте импорт, когда мне нужно? Таким образом, я могу хранить все данные отдельно.
-
Является ли мое впечатление, что pytest препятствует использованию класса для организации ваших функций? Каждый пример, который я читал в Интернете, все это, кажется, использует набор функций только с приборами. Какова конфигурация определения класса и методов и организации тестов в pytest?
-
У меня есть тестовый сценарий, где я должен использовать результат одной функции в другой. С pytest у меня есть утверждение, которое находится в конце функции, а не в возврате, поэтому я не смогу использовать эту функцию в качестве инструмента. Как это сделать? Я знаю, что это не очень хорошая практика, когда мой один тест зависит от другого, но есть ли работа вокруг?
Заранее благодарим за ваши ответы.