Подтвердить что ты не робот

Как пропустить 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?

4b9b3361

Ответ 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"