Skip to content
Yannick PÉROUX edited this page Dec 20, 2013 · 3 revisions

Afin de garantir que nous n'avons pas de régressions, nous devons avoir des tests. Ces tests sont divisés en deux catégories .

  • Unitaires, qui ciblent une méthode en particulier, détachée de son environnement
  • Fonctionnels, qui eux testent si l'intégration des différents composants répond aux attentes

Outils

Pytest

Pytest nous servira à la fois pour les tests fonctionnels et unitaires. C'est un framework de test assez simpliste, qui fait tout ce qu'on a besoin. Il trouve les tests tout seul avec le nom de fichier et le nom de la fonction, il crée des jolis rapports et il a tout ce qu'il faut pour faire des globales, pré-loader des choses, etc…

Tox

tox permet de tester sous différents environnements (py2k, py3k, pypy, etc…)

Intégration continue

Le principe de l'intégration continue est d'avoir un serveur qui lance toute une batterie de tests après chaque commit.

Ça sera certainement du Travis-ci avec un serveur qui lancera les tests (soit une VM amazon, soit mon Kimsufi dans un 1er temps).

Les tests fonctionnels

Ces tests sont extrêmement importants et peuvent être codés dès le début. En effet, ils assurent que l'application se comporte de manière nominale dans un maximum de situations et d'environnements.

Onitu

  • Onitu se lance sans erreur
  • Onitu attend Redis
  • Si un driver quitte, il est relancé
  • Si un driver est relancé il fonctionne avec le reste
  • Si le Referee quitte, il est relancé
  • Si le Referee est relancé, il fonctionne avec le reste

Quand la persistance aura été implémentée

  • Si Redis quitte il est relancé
  • Si Redis est relancé, il fonctionne avec le reste

Referee

  • Il doit mettre son port dans Redis
  • Il doit traiter N-événements similaires comme un seul
  • Il doit gérer une grosse charge (test à préciser)

Plug

Drivers

Tests communs

  • Crée le fichier s'il n'existe pas
  • Peut mettre à jour un fichier
  • Peut mettre à jour un fichier avec un contenu plus petit
  • Crée les répertoires s'ils n'existent pas

Local Storage

Dropbox

Ubuntu One - client

Ubuntu One - server

Les tests Unitaires

Pour le moment les tests unitaires ne sont pas la priorité. Ils seront certainement codé en utilisant pytest. On les ajoutera certainement vers la version 0.3 ou 0.4, quand on aura une base plus mature.

Clone this wiki locally