Похоже, вы хотите, чтобы некоторые тесты наследовали код настройки от других тестов:
from nose.tools import *
from mysystem import system_state
class TestMySystem (TestCase):
def setUp(self):
system_state.initialize()
class WhenItIsSetTo1 (TestMySystem):
def setUp(self):
super(WhenItIsSetTo1, self).setUp()
system_state.set_to(1)
def test_system_should_be_1 (self):
assert_equal(system_state.value(), 1)
class WhenItIsSetTo2 (TestMySystem):
def setUp(self):
super(WhenItIsSetTo2, self).setUp()
system_state.set_to(2)
def test_system_should_be_2 (self):
assert_equal(system_state.value(), 2)
Будьте осторожны, когда вы делаете это;если у вас есть реальные тестовые методы в родительском классе, они также будут выполняться при запуске дочернего элемента (конечно).Когда я делаю это, мне нравится создавать чистые родительские тестовые классы, которые предоставляют только setUp, tearDown & classSetup / classTearDown.
Это должно позволить вам произвольный уровень вложенности, хотя, как только вы это сделаете, вынужны юнит-тесты для юнит-тестов ...