535 votes

Écrire des tests unitaires en Python: Comment démarrer?

<p>J’ai terminé mon premier projet approprié en Python et maintenant, ma tâche consiste à écrire des tests pour cela.</p> <p>Puisque c’est la première fois que j’ai fait un projet, c’est la première fois que J’écrirais des tests pour cela.</p> <p>La question est : <em>Comment</em> dois-je commencer ? Je n’ai absolument aucune idée. Quelqu'un peut-il m’indiquer à certains documents / tutorial / lier / livre que je peux utiliser pour commencer à écrire des tests (et je pense en particulier les tests unitaires)</p> <p>Tous les conseils seront les bienvenus sur ce sujet.</p>

247voto

Skilldrick Points 33002
<p><a href="http://openp2p.com/pub/a/python/2004/12/02/tdd_pyunit.html">Il s’agit d’un tutoriel pour test driven development en Python</a>. Maintenant, comme Justin dit, il est préférable d’écrire vos tests avant ou pendant le codage, et voilà comment ce tutoriel suppose que vous travaillez, mais je pense toujours que vous le trouverez utile.</p> <p><a href="http://onlamp.com/pub/a/python/2005/02/03/tdd_pyunit2.html">Et voici la partie 2</a>.</p>

101voto

Tim McNamara Points 6478

Si vous êtes tout nouveau à l'aide de unittests, l'approche la plus simple à apprendre, c'est souvent la meilleure. Sur cette base, le long je recommande l'utilisation d' py.test plutôt que la valeur par défaut unittest module.

Tenir compte de ces deux exemples, qui font la même chose:

Exemple 1:

import unittest

class LearningCase(unittest.TestCase):
    def test_starting_out(self):
        self.assertEqual(1, 1)

def main():
    unittest.main()

if __name__ == "__main__":
    main()

Exemple 2:

def test_starting_out():
    assert 1 == 1

En supposant que les deux fichiers sont nommés test_unittesting.py, comment faire pour exécuter les tests?

Exemple 1

$ cd /path/to/dir/
$ python test_unittesting.py

Exemple 2:

$ cd /path/to/dir/
$ py.test

72voto

Mark Byers Points 318575
<p>Le livre gratuit de Python <a href="http://diveintopython.net/">Plongée dans Python</a> a un <a href="http://diveintopython.net/unit_testing/index.html">chapitre sur les tests unitaires</a> que vous pourriez trouver utiles.</p> <p>Si vous suivez les pratiques modernes vous devriez probablement écrire des tests pendant que vous écrivez votre projet et pas attendre jusqu'à ce que votre projet est presque terminé.</p> <p>Peu tard maintenant, mais vous savez maintenant pour la prochaine fois. :)</p>

35voto

Justin Ethier Points 57486
<p>Les docs pour <a href="http://docs.python.org/library/unittest.html">unittest</a> serait un bon point de départ.</p> <p>En outre, c’est un peu tard maintenant, mais dans le futur, veuillez envisager d’écrire des tests unitaires avant ou pendant le projet lui-même. De cette façon que vous pouvez les utiliser pour tester que vous avancez, et (en théorie) vous pouvez les utiliser comme des tests de régression, pour vérifier que vos modifications du code n’ont pas rompu tout code existant. Cela vous donnera tous les avantages de l’écriture de scénarios de test  :)</p>

27voto

ssoler Points 923
<p><strong>UnitTest</strong> est livré avec la bibliothèque de standatd, mais je vous recommande <strong><a href="https://nose.readthedocs.org/en/latest/">nosetests</a></strong>.</p> <p>"<em>nez s’étend unittest pour faire des tests plus facilement.</em>"</p> <p>Je vous recommande également <strong> <a href="http://www.logilab.org/857">pylint</a></strong></p> <p>«<em>analyse le code source Python à la recherche de bugs et des signes de mauvaise qualité.</em>"</p>

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