Comment faire pour exécuter une méthode avant de tous les tests dans toutes les classes?

Je suis en train d'écrire le sélénium tests, avec un ensemble de classes, chaque classe contenant plusieurs tests. Chaque classe actuellement s'ouvre puis se ferme Firefox, ce qui a deux conséquences:

  • super lent, l'ouverture de firefox prend plus de temps que l'exécution de l'essai dans une classe...
  • se bloque, parce que, après firefox a été fermé, en essayant de l'ouvrir à nouveau très rapidement, de sélénium, les résultats dans une "Erreur 54'

Je pourrais résoudre l'erreur 54, probablement, par l'ajout d'un sommeil, mais il serait encore super lent.

Donc, ce que je voudrais faire est de réutiliser le même Firefox instances dans tous classes de test. Ce qui signifie que je dois exécuter une méthode avant de toutes les classes de test, et une autre méthode après toutes les classes de test. Donc, setup_class " et "teardown_class" ne sont pas suffisantes.

  • Réglage de la scope pour module n'est-ce pas assez?
  • J'ai besoin d'une fonction à exécuter une seule fois, à la fin, à l'arrêt du webbrowser. Je ne veux pas arrêter le webbrowser, après chaque cours/module. Je ne veux jamais être arrêté.
  • Alors il est assez facile: utiliser le atexit et enregistrer la fonction de la fermeture de firefox pour être exécuté juste avant que l'interprète de sorties.
  • Merci. Je préfère un " py.test de la " façon de faire si possible.
  • Vous pouvez le faire au niveau du module de démontage et d'installation et j'ai été en utilisant au niveau de la session teardowns et des configurations, cependant vous ne savez pas si elles sont encore disponibles.
InformationsquelleAutor Hugh Perkins | 2013-07-23