2016-11-04 2 views
0

Я пытаюсь использовать nosetests и имеют следующую структуруNosetest повторил класс инициализации во время тестирования

tests|-- test_main.py 
    |-- test_fileone.py 
    |-- test_filetwo.py 

внутри test_main.py я следующий код

class A(unittest.TestCase): 

    @classmethod 
    def setUpClass(self): 
     print "Hello World" 
     self.objIwant="12" 


     @classmethod 
     def tearDownClass(cls): 
      self.objIwant.quit() 

внутри test_fileone.py

class B(A): 

     def test_loginpage(self): 
      testme(self.objIwant) 
      def test_logoutpage(self): 
       testme_other(self.objIWant) 
     #followed other def test_zzz(self) 

внутри test_filetwo.py

class C(A): 
     def test_clickpage(self): 
      clickme(self.objIwant) 
      def test_revertpage(self): 
       revertme(self.objIWant) 
     #followed other def test_zzz(self) 

В результате я получил это (в порядке убывания):

1. HelloWorld printed 
2. Result of test_loginpage 
3. Result of test_logoutpage 
4. Helloworld printed 
5. Result of test_clickpage 
6. Result of test_revertpage 

Согласно документации nosetest, я понимаю, что nosetests будет индексировать все тесты/папки и файлы внутри, и сделать тест для функции который начинается с test_zzz. Однако это смущает меня, как на самом деле иметь objIWant в классе C и классе B, который получен из класса A, без двукратного печатания «Hello World» (его следует печатать только один раз при инициализации, а другой класс должен иметь доступ к одному и тому же объекту из родительского класса)

Как я могу достичь этого, который также структурировал мои модули unittests лучше?

ответ

0

setUpClass вызывается для каждого нового класса тестов, из docs:

Когда набор тестов встречает тест из нового класса, то tearDownClass() из предыдущего класса (если есть один) является а затем setUpClass() из нового класса.

Если вы хотите, чтобы этот метод вызывается только один раз для всех тестовых классов, возможно, использовать setUpModule, как описано в следующем абзаце этой ссылки.

Смежные вопросы