J'ai un Si un testSuite code> en python avec plusieurs
testsCases code>. p>
TESTCASE code> échoue,
testSuite code> continue avec le prochain
TESTCASE CODE>. J'aimerais pouvoir arrêter
testseuite code> quand un
TestCase échoue ou être capable de décider si le
testsuite code> devrait continuer ou arrêter. P >
6 Réponses :
Vous pouvez utiliser Sys.exit () pour fermer l'interpréteur Python à tout moment de votre test. P>
Je veux fermer l'interpréteur de Python dans mon testsuite lors de l'exécution de la testse, une erreur se produit
Je ne pense pas que cela soit vrai, Unitest code> est apparu pour attraper le
sys.exit code> et continuer quand j'ai essayé cette solution
-1: Ni sys.exit () code> ni
sys._exit () code> arrête réellement mes tests.
Faites-vous réellement des tests d'unité? Ou des tests système de quelque chose d'autre? Si ce dernier, vous pouvez être intéressé par mon Cadre de test basé sur Python . L'une de ses caractéristiques est exactement cela. Vous pouvez définir des dépendances de test de test et la suite sautera des tests avec des dépendances infructueuses. Il a également un support intégré au sélénium et au webDriver. Cependant, ce n'est pas si facile à installer. Actuellement en développement mais essourait principalement. Fonctionne sur Linux. p>
Merci Keith mais je ne sais pas comment utiliser votre cadre de test basé sur Python pour résoudre mon problème.
Exécutez vos tests avec nez et utilisez le drapeau -x. Que combiné avec le drapeau - failes devrait vous donner tout ce dont vous avez besoin. Donc, dans le niveau supérieur de votre projet, exécutez
nosetests --with-coverage --cover-package=<your package name> --cover-html
Puis-je faire la même chose sans utiliser le nez?
Je ne suis pas sûr - je sais qu'unitest2 apporte beaucoup de friandises neuves, mais je ne les ai pas vraiment utilisées
Depuis Python 2.7, ou lors de l'utilisation d'un script: p> malheureusement je n'ai pas encore découvert comment Spécifiez cette option lorsque vous utilisez Unittest code> Support
Failfast code> Option. Il peut être spécifié par CommandLine:
seugools code> et
setup.py code>. p> p>
Remarque: cela ne fonctionne pas si vous souhaitez utiliser Unittest Discover code> (ou je viens de mettre le drapeau au mauvais endroit?).
Utiliser Exemple: P> échecast = true code> Il arrête d'exécuter tous les tests si 1 échoue dans votre classe de test
if __name__ == '__main__':
unittest.main(failfast=True)
Aucune des réponses ne semble toucher à cette partie de votre question:
... Soyez capable de décider si le testSuite devrait continuer ou arrêter. p> blockQquote>
Vous pouvez remplacer la méthode
exécuter () code> dans votre
TestCase CODE> Classe et appelez le
testtresult.stop () code> méthode à Signaler le
testSuite code> pour arrêter les tests d'exécution. P>
class MyTestCase(unittest.TestCase): def run(self, result=None): if stop_test_condition(): result.stop() return super().run(result=result)
Bonne réponse à la question actuelle. J'ai pu accéder à mon appel à Super (). Exécuter () avec un gestionnaire pour une exception personnalisée soulevée par la configuration (). (Pour motifs hacky , l'exception doit être une sous-classe de clavierInterrupter.)
Quel cadre de test unitaire utilisez-vous?
Au fur et à mesure que vos tests de l'unité devraient être indépendants, cette exigence semble étrange. Pourquoi ne pas exécuter tous les tests unitaires, vous voyez donc tous les tests d'échec à la fois?