Dites que j'ai 2 tests définis. Existe-t-il un moyen de quitter le premier test (par exemple, si une condition est vraie) sans exécuter le reste du code du test et passer au test suivant? (Quelque chose comme l'instruction continue de boucles, mais au lieu de boucles, continuez au test suivant)Existe-t-il un moyen de quitter un test pyest et de passer au test suivant?
Répondre
Vous pouvez toujours return
de votre test sur la base de certaines conditions, ce qui le ferait sortir sans exécuter le code qui suit.
Vous pouvez exécuter des tests de manière sélective dans pytest
à des fins de débogage, si c'est ce que vous entendez -
py.test mytestfile.py -k <pattern>
Sinon, la chose est des gens n'aiment pas vraiment passer trop de temps à des tests de fixation. Les tests doivent donc être très simples et bien écrits même plus que le code qu'ils testent, car personne ne va écrire des tests pour tester les tests. Même si un tel comportement aléatoire était possible, je ne le recommanderai pas.
Pour pytest, il y a beaucoup de sauter des capacités, consultez pytest skip docs
Mais si vous utilisez unittest, de la même façon, vous pouvez sauter manuellement avec un décorateur avant de lancer le test, quelque chose comme:
@unittest.skip("Skipping test_myFunction test"):
def test_myFunction(self):
assert(testing_definition)
ou tout simplement mettre une condition qui peut être mis en correspondance soit en interne à la fonction ou le constructeur unittest.TestCase:
# @unittest.skip("Skipping test_myFunction test"):
def test_myFunction(self):
condition = self.condition # or however you define
if condition:
assert(testing_definition)
else:
print("Internal skip of test_myFunction where condition = {}".format(condition)"
le L'instruction 'return' fait le travail. – rbs