Как пропустить python unittest в setUpClass?
Я делаю несколько unittests с python и некоторые предварительные проверки в setUpClass
. Как я могу сбросить unitest
- fail
в setUpClass
, как следующий простой пример:
class MyTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
unittest.TestCase.fail("Test")
def test1(self):
pass
if __name__ == '__main__':
unittest.main()
дает ошибку TypeError: unbound method fail() must be called with TestCase instance as first argument (got str instance instead)
.
Я понимаю, что ошибка, которую я получаю как fail, является методом экземпляра, и у меня пока нет экземпляра MyClass
. Использование экземпляра "на лету", например
unittest.TestCase().fail("Test")
также не работает, поскольку unittest.TestCase
сам не имеет тестов. Любые идеи о том, как сбой всех тестов в MyClass
, когда какое-либо условие в setUpClass
не выполняется?
Последующий вопрос: есть ли способ увидеть тесты в setUpClass
?
Ответы
Ответ 1
self.fail("test")
, помещенный в ваш метод экземпляра setUp, терпит неудачу во всех тестах
Я думаю, что самый простой способ сделать это на уровне класса - сделать переменную класса так что-то вроде:
@classmethod
def setUpClass(cls):
cls.flag = False
def setUp(self):
if self.flag:
self.fail("conditions not met")
Надеюсь, это то, что вы хотите.
Ответ 2
Использование простого утверждения должно работать
assert False, "I mean for this to fail"