Comment puis-je exécuter plusieurs Python cas de test dans une boucle?
Je suis nouveau à Python et à essayer de faire quelque chose que je fais souvent en Ruby. À savoir, une itération sur un ensemble d'indices, en les utilisant comme argument à la fonction et en comparant ses résultats avec une gamme de luminaire sorties.
Donc je l'ai écrit comme je le fais habituellement en Ruby, mais cela a entraîné dans seulement un cas de test.
def test_output(self):
for i in range(1,11):
....
self.assertEqual(fn(i),output[i])
Que j'essaie de faire le test pour chaque élément de la gamme. Comment puis-je le faire?
Voulez-vous générer 10 distinctes des cas de test? Le code que vous avez montré œuvres, il n'a tout simplement tous les dix affirmations dans un cas de test.
OriginalL'auteur picardo | 2013-09-28
Vous devez vous connecter pour publier un commentaire.
À l'aide de unittest, vous pouvez montrer la différence entre deux séquences dans un cas de test.
Si ce n'est pas assez souple, à l'aide de unittest, il est possible de générer plusieurs tests, mais c'est un peu délicat.
Nez fait le ci-dessus plus facile grâce à la test de générateurs.
Des questions similaires:
Il est préférable de ne pas mettre à l'épreuve la méthode de génération dans le si nom == 'principal " clause parce que c'est de modifier le module. La séquence de test de code ne fait pas de sens sans la génération de code.
Bon point @JappieKerk, j'ai supprimé la clause.
OriginalL'auteur Trevor Merrifield
En python monde, deux plus populaires pour écrire des tests sont les suivants:
Dans pytest vous paramétrer les tests très facilement:
Cela produira belle sortie aussi bien que l'exécution des tests:
Je suis en utilisant pytest depuis deux ans maintenant, et c'est très agréable de l'outil. Vous avez de nombreuses fonctionnalités. Outre le paramétrage il y a des montages aussi, très très agréable assertions (vous n'avez pas besoin d'écrire assertEqual, juste
assert a==b
et pytest peut générer très agréable et utile de sortie).OriginalL'auteur spinus
À partir de python 3.4, vous pouvez le faire comme ceci:
https://docs.python.org/3.4/library/unittest.html?highlight=subtest#distinguishing-test-iterations-using-subtests
OriginalL'auteur Antoine Fontaine
Si Votre question concerne, lorsque vous tentez de résoudre le problème à la compétitivité des endroits comme hackerrank ou n'importe où ailleurs. Si elles n'ont pas donné leur environnement pour exécuter des cas de test dans une boucle.
Et localement si Vous exécutez du code en python compilateur Il serait utile.
vous pouvez simplement utiliser une boucle while ou de la gamme de la fonction de python.
e.g:
OriginalL'auteur Sourav Choudhary