J'ai terminé mon premier projet en Python et maintenant ma tâche est d'écrire des tests pour cela.
Puisque c'est la première fois que je fais un projet, c'est la première fois que j'écris des tests pour lui.
La question est: comment commencer? Je n'ai absolument aucune idée. Quelqu'un peut-il m'indiquer une documentation / un tutoriel / un lien / un livre que je peux utiliser pour commencer à écrire des tests (et je suppose que les tests unitaires en particulier)
Tout conseil sera le bienvenu sur ce sujet.
python
unit-testing
testing
user225312
la source
la source
Réponses:
Si vous êtes novice dans l'utilisation des tests unitaires, l'approche la plus simple pour apprendre est souvent la meilleure. Sur cette base, je recommande d'utiliser
py.test
plutôt que leunittest
module par défaut .Considérez ces deux exemples, qui font la même chose:
Exemple 1 (unittest):
Exemple 2 (pytest):
En supposant que les deux fichiers sont nommés
test_unittesting.py
, comment exécuter les tests?Exemple 1 (unittest):
Exemple 2 (pytest):
la source
unit-test
toujours inclus dans la bibliothèque standard, sipy.test
etnose
fournit la même fonctionnalité avec une interface beaucoup plus simple? Est-ce juste pour fournir une compatibilité descendante, ou a-tunittest
-il des avantagespy.test
etnosetest
ne peut pas fournir?unittest
emballage standard est toujours assez bon. Il est standard, ce qui signifie qu'il est en quelque sorte garanti de bien fonctionner. Enfin, quiconque utilise votre code n'a pas besoin d'installer de packages supplémentaires.Le livre gratuit Python Dive Into Python contient un chapitre sur les tests unitaires qui pourrait vous être utile.
Si vous suivez des pratiques modernes, vous devriez probablement passer les tests pendant que vous rédigez votre projet et ne pas attendre que votre projet soit presque terminé.
Un peu en retard maintenant, mais maintenant vous savez pour la prochaine fois. :)
la source
Il y a, à mon avis, trois excellents cadres de test python qui sont bons à vérifier.
unittest - le module est livré en standard avec toutes les distributions python
nose - peut exécuter des tests unittest, et a moins de passe-partout.
pytest - exécute également des tests les plus simples, a moins de passe-partout, de meilleurs rapports, beaucoup de fonctionnalités supplémentaires intéressantes
Pour obtenir une bonne comparaison de tous ces éléments, lisez les introductions de chacun à http://pythontesting.net/start-here .
Il y a aussi des articles étendus sur les luminaires, et plus encore.
la source
Les docs pour unittest seraient un bon point de départ.
De plus, il est un peu tard maintenant, mais à l'avenir, pensez à écrire des tests unitaires avant ou pendant le projet lui-même. De cette façon, vous pouvez les utiliser pour tester au fur et à mesure et (en théorie), vous pouvez les utiliser comme tests de régression, pour vérifier que vos modifications de code n'ont cassé aucun code existant. Cela vous donnerait tous les avantages d'écrire des cas de test :)
la source
unittest
. Une fois que je maîtriserai les choses, je l'utiliserai davantage pour le développement, ainsi que pour augmenter le nombre de cas de test pour chaque unité.unittest est livré avec la bibliothèque standard, mais je vous recommanderais nosetest .
"le nez se prolonge pour rendre les tests plus faciles. "
Je vous recommanderais également pylint
" analyse le code source de Python à la recherche de bogues et de signes de mauvaise qualité. "
la source
Comme d'autres l'ont déjà répondu, il est tard pour écrire des tests unitaires, mais pas trop tard. La question est de savoir si votre code est testable ou non. En effet, il n'est pas facile de tester le code existant, il existe même un livre à ce sujet: Travailler efficacement avec le code hérité (voir points clés ou PDF précurseur ).
Maintenant, écrire les tests unitaires est votre appel. Vous devez juste être conscient que cela pourrait être une tâche fastidieuse. Vous pouvez vous attaquer à cela pour apprendre les tests unitaires ou envisager d'écrire des tests d'acceptation (de bout en bout) en premier, et commencer à écrire des tests unitaires lorsque vous modifierez le code ou ajouterez une nouvelle fonctionnalité au projet.
la source
nosetests est une solution brillante pour les tests unitaires en python. Il prend en charge les cas de test et les doctests les plus bas, et vous permet de commencer avec un fichier de configuration simple.
la source
nose
etnose2
sont en mode maintenance. Il vaut mieux commencerpy.test
car il a beaucoup plus de support