Je fais quelques tests avec python et quelques vérifications de pré-test dans setUpClass
. Comment puis-je lancer un unitest
-fail
dans le setUpClass
, comme exemple simple suivant:
class MyTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
unittest.TestCase.fail("Test")
def test1(self):
pass
if __name__ == '__main__':
unittest.main()
donne l'erreur TypeError: unbound method fail() must be called with TestCase instance as first argument (got str instance instead)
.
Je comprends que l'erreur que j'obtiens car échec est une méthode d'instance, et je n'ai pas encore d'instance de MyClass
. Utiliser une instance à la volée comme
unittest.TestCase().fail("Test")
ne fonctionne pas non plus, car unittest.TestCase
n'a lui-même aucun test. Des idées sur la façon d'échouer tous les tests dans MyClass
, lorsqu'une condition dans setUpClass
n'est pas remplie?
Question de suivi: existe-t-il un moyen de voir les tests dans setUpClass
?
self.fail("test")
mis dans votre méthode d'instance setUp échoue à tous les tests
Je pense que la façon la plus simple de le faire au niveau de la classe est de créer une variable de classe pour quelque chose comme:
@classmethod
def setUpClass(cls):
cls.flag = False
def setUp(self):
if self.flag:
self.fail("conditions not met")
J'espère que c'est ce que vous voulez.
L'utilisation d'une assertion simple devrait fonctionner
assert False, "I mean for this to fail"