1
Я использую набор тестов django с носом и пытаюсь выяснить, как я могу выполнить контрольный тест, если предыдущий тест не прошел. Это возможно?Пропуск теста, основанный на прохождении предыдущего теста
Я использую набор тестов django с носом и пытаюсь выяснить, как я могу выполнить контрольный тест, если предыдущий тест не прошел. Это возможно?Пропуск теста, основанный на прохождении предыдущего теста
Вот как я это сделать:
test_condition_a = False
совместно тестов.test_a
и поймайте исключение, если он не сработает, чтобы вы могли установить test_condition_a = True
перед выходом теста.@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()
Мои единственные проблемы с вышеприведенным кодом - это не обращение с запущенным testB, если testA терпит неудачу. Я мог перехватывать исключения в testA, но тогда я не знаю, в какой момент нужно отбросить исключения из тестовой среды. – emperorcezar
Опечатка, опечатка. 'if (not self.testA()) self.testB()'. Как это звучит? –