2014-11-19 2 views

ответ

2

Вот как я это сделать:

  1. Есть глобальная переменная называется test_condition_a = False совместно тестов.
  2. Попробуйте/поймайте assert в test_a и поймайте исключение, если он не сработает, чтобы вы могли установить test_condition_a = True перед выходом теста.
  3. Используйте @unittest.skipIf(test_condition_a) на всех других тестовых примерах, которые вы хотите запустить, только если test_a не работает.

EDIT На второй мысли, выше не будет работать, поскольку тест порядок является случайным. Ваш лучший выбор - сделать что-то вроде этого

class Test(TestCase): 
    def setUp(self): 
     ... 

    @unittest.skip("Skip by default") 
    def testB(self): 
     #test code 

    def testA(self): 
     try: 
      #test code 
      return True 
     except Error: 
      return False 

    def testA_then_B(self): 
     if (self.testA()): 
      self.testB() 
+0

Мои единственные проблемы с вышеприведенным кодом - это не обращение с запущенным testB, если testA терпит неудачу. Я мог перехватывать исключения в testA, но тогда я не знаю, в какой момент нужно отбросить исключения из тестовой среды. – emperorcezar

+0

Опечатка, опечатка. 'if (not self.testA()) self.testB()'. Как это звучит? –

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