J'ai terminé mon premier projet dans Python et ma tâche consiste maintenant à rédiger des tests.
Comme c’est la première fois que j’ai fait un projet, c’est la première fois que j’écris des tests.
La question est, comment je commence? 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.
Si vous débutez avec unittests, l'approche la plus simple à apprendre est souvent la meilleure. Sur cette base, je recommande d'utiliser py.test
plutôt que le module par défaut unittest
.
Considérez ces deux exemples, qui font la même chose:
Exemple 1 (unittest):
_import unittest
class LearningCase(unittest.TestCase):
def test_starting_out(self):
self.assertEqual(1, 1)
def main():
unittest.main()
if __== "__main__":
main()
_
Exemple 2 (pytest):
_def test_starting_out():
assert 1 == 1
_
En supposant que les deux fichiers s'appellent _test_unittesting.py
_, comment exécutons-nous les tests?
Exemple 1 (unittest):
_cd /path/to/dir/
python test_unittesting.py
_
Exemple 2 (pytest):
_cd /path/to/dir/
py.test
_
Le livre gratuit Python Dive Into Python contient un chapitre sur les tests unitaires que vous pourriez trouver utile.
Si vous suivez les pratiques modernes, vous devriez probablement écrire les tests pendant que vous écrivez votre projet et ne pas attendre que votre projet soit presque terminé.
Peu en retard maintenant, mais maintenant vous savez pour la prochaine fois. :)
Il existe, à mon avis, trois grands python cadres de test qu'il est bon de consulter.
nittest - le module est livré en standard avec toutes les distributions python
nez - peut effectuer des tests moins rigoureux et comporte moins de passe-passe.
pytest - effectue également des tests très rigoureux, a moins de contraste, de meilleurs rapports, de nombreuses autres fonctionnalités intéressantes
Pour obtenir une bonne comparaison de tous ceux-ci, lisez les introductions de chacun à l’adresse suivante à http://pythontesting.net/start-here .
Il existe également de nombreux articles sur les appareils et plus encore.
La documentation pour nittest serait un bon point de départ.
En outre, il est un peu tard maintenant, mais à l'avenir, envisagez d'é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 pas cassé de code existant. Cela vous donnerait tous les avantages d'écrire des cas de test :)
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 du code hérité (voir points clés ou PDF précurseur ).
Vous devez maintenant écrire les tests unitaires ou non. Vous devez juste être conscient que cela pourrait être une tâche fastidieuse. Vous pourriez vous y attaquer pour apprendre les tests unitaires ou envisager d'écrire les tests d'acceptation (de bout en bout) en premier, puis commencer à écrire des tests unitaires lorsque vous modifierez le code ou ajouterez une nouvelle fonctionnalité au projet.
nosetests est une solution brillante pour les tests unitaires en python. Il supporte à la fois les cas de test et les doctests basés sur unittest et vous permet de démarrer avec un simple fichier de configuration.