33 votes

Python nose2 vs. nose vs. unittest

Je voudrais réitérer cette vieille question parce que beaucoup de choses ont changé dans les deux unittest y nose (ou nose2 ) depuis que la question a été posée.

Donc : Quelles sont les différences entre nose y unittest ?

Je suis familier avec unittest mais pas avec nose à tel point que je ne suis même pas sûr que je doive poser des questions sur nose , nose2 ou les deux (car "nose2 n'est pas nose" ).

(J'ai lu à travers cette page décrivant les différences entre nose y nose2 mais pour quelqu'un qui n'est pas familier avec l'un ou l'autre, ce n'était pas très utile).

J'utilise python 2.7, mais python 3 est également intéressant.

21voto

Croad Langshan Points 743

Nose et unittest ne sont pas strictement des alternatives, car nose ne nécessite pas de remplacer vos classes de base TestCase. Il est tout à fait possible d'utiliser, par exemple, nose pour exécuter des tests qui dérivent de unittest.TestCase ou testtools.TestCase. C'est une chose utile à faire car les différentes classes de base de test fournissent différentes méthodes utilitaires (comme des méthodes d'assertion supplémentaires, et le toujours utile .addCleanup, qui, je crois, a été introduit pour la première fois dans le monde Python par zope.testing, sous un autre nom).

nose et unittest2 (renommé en unittest simple dans Python 2.7 et Python 3) fournissent tous deux la découverte des tests.

Je pense au nez comme :

  1. Un outil extensible en ligne de commande pour découvrir et exécuter des tests
  2. Une API pour mettre en œuvre des plugins.
  3. Une communauté qui fournit des plugins.

La recherche de "nose" sur PyPI montre de nombreux plugins disponibles, donc 3. est peut-être la fonctionnalité la plus importante que nose fournit. Il y avait une proposition pour ajouter un système de plugins à unittest2, mais pour autant que je sache, cela n'a pas été adopté.

Divulgation complète : j'ai travaillé sur le système de plugins de nez.

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