premiers tests

Créez un nouveau projet avec PyCharm que l’on pourra appeler essai_tests, puis ajoutez-y un fichier que vous nommerez mathematiques.py. Ce fichier contiendra le code suivant :

def double(entier):
  return 2 * entier

un test sans bibliothèque

Pour tester ce code, j’imagine que si les deux conditions suivantes sont remplies : * double(0) vaut 0, * double (21) vaut 42

Ma méthode sera exacte.

On utilise le mot clé assert pour créer notre fonction de test.

Attention : Les fonctions de tests doivent toutes commencer par test_.

Ajouter la méthode ci-après à votre fichier :

def test_double():
  assert double(0) == 0
  assert double(21) == 42

et exécutez là en fin de programme : test_double()

Si tout s’est passé comme prévu, il ne s’est rien passé. Normal, l’ assert était vérifié. Changez un des assert de la fonction test_double pour que le résultat soit faux (par exemple assert double(0) == 7). Le programme doit maintenant s’arrêter sur une exception. Chez moi, j’obtiens ça :

Traceback (most recent call last):
  File "/Users/francois/Documents/pycharm/essai_tests/mathematiques.py", line 10, in <module>
    test_double()
  File "/Users/francois/Documents/pycharm/essai_tests/mathematiques.py", line 6, in test_double
    assert double(0) == 7
AssertionError

Ainsi, si tout se passe bien, nos tests sont passés, si le programme s’arrête sur une exception de type AssertionError, nos tests ne correspondent pas à la réalité. Nous sommes en face d’un bug (qu’il faut corriger).

Utilisation de l’environnement de test avec Pycharm

Nous allons demander à l’environnement py.test d’exécuter nos tests. Si ce n’est pas encore fait, Il faut installer le module pytest (pip3 install pytest ou via pycharm).

Il nous donnera plus d’informations sur les tests réussis ou échoués (une application normale contient des centaines de tests).

Puis nous allons demander à Pycharm d’exécuter mathematiques.py à l’aide de notre environnement de test.

Pour cela, créez un environnement d’exécution et créez une configuration pyhton test > py.test. Ici, les paramètres dont nous aurons besoin sont :

Une fois ceci configuré, cliquez sur le bouton OK.

Un nouvel environnement de tests est créé dans le menu run. Exécutez le. Vous devriez voir une nouvelle fenêtre en bas de l’écran PyCharm apparaître et vos tests s’exécuter. Si tout s’est bien passé, une barre verte doit apparaître.

Pour finir cette partie :

super ! Pour exécuter les tests ils suffit maintenant de cliquer sur un bouton.

Séparer code et tests

Placez la fonction de test (et son exécution) dans un fichier que vous nommerez test_mathematiques.py.

Faites en sorte qu’il s’exécute sans problème (attention aux import).

On séparera toujours les tests du code. Tout fichier de test commence par test_.

Dans le module d’exécution de test, vous pouvez maintenant donnez le répertoire de votre projet comme source de tests. Pytest prendra automatiquement tous les fichiers qui commencent par test_ comme fichiers de tests et à l’interieurs de ceux ci les fonctions qui commencent par test_ comme des tests. Ceci vous permet d’exécuter en un click tous les tests de votre projet répartis en plusieurs fichiers de tests.

Les tests en ligne de commande

La bibliothèque http://pytest.org peut directement s’exécuter depuis le terminal. En supposant que votre fichier de test s’appelle test_mathematiques.py et que vous vous trouviez dans le bon répertoire, la commande : python3 -m pytest test_aide_mathematiques.py va exécuter vos tests, comme vous le feriez depuis PyCharm.