51 votes

sortie la plus colorée

J'utilise unittest (en fait, unittest2) pour Python de tests, en collaboration avec Python se Moquer de se moquer des objets et le nez pour exécuter tous les tests en un seul passage.

Je m'ennuie d'être en mesure de dire ce qui est bien et ce qui est mal en un coup d'œil à partir de la bande vert/rouge bars. Est-il un moyen pour obtenir de couleur de sortie de unittest?

(Évolution de la suite de test à ce stade n'est pas une option, et j'ai fait comme unittest)

28voto

meshy Points 2056

À l'aide d'une méthode très similaire à robert de réponse, j'ai (aujourd'hui!) publié un package qui permet à la couleur de sortie en unittest résultats des tests. J'ai appelé couleur-coureur.

Pour l'installer, exécutez:

pip install colour-runner

Alors, où vous avez été en utilisant unittest.TextTestRunner, utilisez colour_runner.runner.ColourTextTestRunner à la place.

C'est à quoi il ressemble avec verbosity=1:

Tests with verbosity 1

...et verbosity=2:

enter image description here

22voto

David Points 3254

Je vais avoir un bon succès avec nosetests et rednose . Il est toujours maintenu au moment de la rédaction de ce document.

14voto

johnbaum Points 583

Vous pourriez essayer pyrg

12voto

robert Points 10493

Créez une classe qui hérite de unittest.TestResult (disons MyResults ) et implémente un tas de méthodes. Créez ensuite une classe qui hérite de unittest.TextTestRunner (disons MyRunner ) et remplacez _makeResult() pour renvoyer une instance de MyResults .

Ensuite, construisez une suite de tests (que vous avez probablement déjà utilisée) et appelez MyRunner().run(suite) .

Vous pouvez mettre le comportement que vous souhaitez, y compris les couleurs, en MyResults .

2voto

Steve Points 231

Si vous pouviez changer juste la ligne de vos essais d'importation, vous pouvez utiliser redgreenunittest. C'est un clone que j'ai fait de unittest, mais il a colorisée de sortie.

Si vous voulez l'utiliser sans la mise à jour de la viande de votre code, vous pouvez simplement l'utiliser comme ceci:

import redgreenunittest as unittest

Ce n'est pas un clone de unittest2, de sorte qu'il ne fonctionne pas out-of-the-box avec Andrea code, mais sa source est donc un unittest2 fourchette de redgreenunittest ne serait pas hors de question.

D'ailleurs, "vous le faites mal" les commentaires sont les bienvenus, tant qu'ils contiennent un certain raisonnement. J'aimerais le faire à droite à la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X