2015-03-09 4 views
1

У меня есть общий тестовый класс в моем наборе nosetests и некоторых подклассах, наследующих от него.Использование методов наследования setUp() и tearDown() в тестах на нос

Конфигурационный является также:

class CGeneral_Test(object):: 
    """This class defines the general testcase""" 
    def __init__ (self): 
     do_some_init() 
     print "initialisation of general class done!" 

    def setUp(self): 
     print "this is the general setup method" 
     do_setup() 

    def tearDown(self): 
     print "this is the general teardown method" 
     do_teardown() 

Теперь у меня есть подклассы, которые выглядят следующим образом:

class CIPv6_Test(CGeneral_Test): 
    """This class defines the sub, inherited testcase""" 
    def __init__ (self): 
     super(CIPv6_Test, self).__init__() 
     do_some_sub_init() 
     print "initialisation of sub class done!" 

    def setUp(self): 
     print "this is the per-test sub setup method" 
     do_sub_setup() 

    def test_routing_64(self): 
     do_actual_testing_scenarios() 

    def tearDown(self): 
     print "this is the per-test sub teardown method" 
     do_sub_teardown() 

Итак, что я хочу, чтобы достичь было бы, что каждый тест будет ссылаться как подкласса и суперкласса setUp. Следовательно, желаемый порядок теста:

Base Setup 
Inherited Setup 
This is a some test. 
Inherited Teardown 
Base Teardown 

Конечно, это может быть достигнуто путем вызова CGeneral_Test.setUp(self) от унаследованной setUp() метода.

Есть ли какая-либо конфигурация, в которой это поведение достигается по умолчанию без специального вызова методов super setUp и tearDown?

спасибо!

ответ

3

Нет, но не обязательно указывать CGeneral_Test. Вы не в CIPv6_Test.__init__, и можете использовать эту же стратегию здесь:

class CIPv6_Test(CGeneral_Test): 
    def setUp(self): 
     super(CIPv6_Test, self).setUp() 
     print "this is the per-test sub setup method" 
     do_sub_setup()