Есть ли способ пропустить метод разрыва, если какой-либо из тестов не работает. Я попробовал -x вариант, но он пропускает только тестовые и не срывает. Я уверен, что должен быть какой-то способ, когда тестовый тест не работает, настройка, на которой он был выполнен, должна быть там для отладки.skip teardown, когда сбой тестовой системы
2
A
ответ
0
Один из способов как-то достичь его этот путь:
class TestClass():
def setup(self):
print "I am in setup"
def teardown(self):
if getattr(self, 'is_fail', False):
return
print "I am in teardown"
def test_fail(self):
print "I am in test fail"
try:
assert False
except AssertionError as e:
setattr(self, 'is_fail', True)
raise e
def test_pass(self):
print 'I am in test pass'
try:
assert True
except AssertionError as e:
setattr(self, 'is_fail', True)
raise e
Если вы запустите его, вы получите:
I am in setup
I am in test fail
I am in setup
I am in test pass
I am in teardwon
Но обратите внимание, что это не такая хорошая практика, чтобы поймать AssertionError в этом случае. Вы должны рассмотреть возможность поиска плагина носа или написать его самостоятельно.
+1
Несомненно. Попробуй это. Спасибо:) – SKT
Перед тем, как попытаться остановить разрывы: вы уверены, что ваш тестовый тест правильно определен? Если у вас есть веские причины для огромного сложного тестового случая, пожалуйста, не обращайте внимания (я угадываюсь здесь не в силе), но ощущение кишки говорит мне, что проблема действительно может быть связана с тестом, а не с необходимостью остановить разрыв. – Layna
Остановить срыв, если сбой тестового теста обеспечит настройку в этом состоянии и будет легче отлаживать. Есть ли другой путь? – SKT
Я больше дома в java, у которого действительно хорошие IDE и UnitTesting-системы, но разве ваша система не предоставляет способ установить контрольные точки для отладки? Я исхожу из предположения, что python не может быть этим разным :). – Layna