У вас может быть функция настройки, которая применяется ко всему модулю, а не только к классу, как объяснено здесь .
В вашем случае это будет что-то вроде:
def setUpModule():
DRIVER = webdriver.Firefox()
def tearDownModule():
DRIVER.quit()
Обратите внимание, что DRIVER
- это глобальная переменная в этом случае, поэтому она доступна для объектов всех классов.
Также обратите внимание, что упорядочение тестового примера может привести к тому, что функции настройки вашего модулявызывается несколько раз, как описано в документации:
Порядок тестов по умолчанию, создаваемый загрузчиками тестов unittest, состоит в том, чтобы сгруппировать все тесты из одних и тех же модулей и классов вместе.Это приведет к тому, что setUpClass / setUpModule (и т. Д.) Будет вызываться ровно один раз для каждого класса и модуля.Если вы рандомизируете порядок так, чтобы тесты из разных модулей и классов были смежными, то эти общие функции фикстуры могут вызываться несколько раз за один прогон теста.
Этот пример долженПроясните, когда выполняется каждый метод / функция настройки:
import unittest
def setUpModule():
print 'Module setup...'
def tearDownModule():
print 'Module teardown...'
class Test(unittest.TestCase):
def setUp(self):
print 'Class setup...'
def tearDown(self):
print 'Class teardown...'
def test_one(self):
print 'One'
def test_two(self):
print 'Two'
Вывод этого:
$ python -m unittest my_test.py
Module setup...
Class setup...
One
Class teardown...
.Class setup...
Two
Class teardown...
.Module teardown...
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK