trompe est une extension de Nez qui facilite les tests de niveau supérieur.
Changements comment les classes de test sont découverts en les forçant à se inscrire via décorateurs qui contiennent des métadonnées utiles tels que quels groupes ils sont, ou non ils ont des dépendances sur d'autres tests, et si elles doivent être ignorées.
sortes de Proboscis tous les tests enregistrés dans l'ordre d'exécution souhaitée construit alors une suite de tests qui la transmet à Nez. Il peut également filtrer cette liste de sorte qu'il est possible de spécifier les groupes de tests que vous souhaitez exécuter sans passer dans les classes de test exactes. Lors de l'exécution, des tests qui dépendent d'autres essais qui ont échoué sont automatiquement marqués comme sauté.
Une grande partie de cette fonctionnalité a été "inspiré" par TestNG. Si vous venez de ce cadre, les principales caractéristiques trompe actuellement les offres sont commande dépend de test (actuellement limité à niveau de la classe) et la capacité d'organiser vos tests en groupes indépendants de la structure de leurs modules et paquets.
Avec Proboscide il est possible d'écrire des tests qui dépendent d'un service Web (ou une autre dépendance que vous souhaitez pour initialiser une seule fois) comme ceci:
test (groupes = ["service.tests"], depends_on_groups = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; classe WhenConnectingAsAdmin (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_change_profile_image (auto):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.client = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertEquals ("default.jpg", self.client.get_profile_image ())
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.client.set_profile_image ("spam.jpg")
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertEquals ("spam.jpg", self.client.get_profile_image ())
Puis écrire le code pour démarrer et arrêter correctement ce service Web dans ne importe quel autre module comme un premier test de classe elle-même:
test (groupes = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; classe StartWebServer (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_start (auto):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Démarrez serveur Web, puis émet une connexion.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; mymodule.start_web_server ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; client = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertTrue (client.service_is_up)
& Nbsp; & nbsp; & nbsp; test (groupes = ["service.shutdown"],
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; depends_on_groups = ["service.initialization", "service.tests"],
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; never_skip = True)
& Nbsp; & nbsp; & nbsp; StopService de classe (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_stop (auto):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; client = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; si client.service_is_up:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; mymodule.stop_web_server ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertFalse (client.service_is_up ())
Utilisation Proboscide vous pouvez être assurés les essais exécutera dans l'ordre souhaité, même si vous ajoutez d'autres classes de test, changer leur nom, ou les déplacer vers différents modules
Exigences :.
- Python
- nez
Commentaires non trouvées