Tryton – tests unitaires d’un module

Tryton fournit un framework de tests unitaires reposant sur unittest.
Le wiki décrit très bien comment procéder pour les tests unitaires d'un module.

Pour l'illustrer, nous allons reprendre notre 1er exemple de création de module (module mylibrary).
Description
- ajouter dans le répertoire modules/mylibrary, le sous-répertoire tests et les 2 fichiers suivants :

 - créer le fichier __init__.py
#This file is part mylibrary module for Tryton.
#The COPYRIGHT file at the top level of this repository contains
#the full copyright notices and license terms.

from .test_mylibrary import suite

__all__ = ['suite']

- créer le fichier test_mylibrary.py
#!/usr/bin/env python
#This file is part mylibrary module for Tryton.
#The COPYRIGHT file at the top level of this repository contains
#the full copyright notices and license terms.
import sys
import os
DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
    '..', '..', '..', '..', '..', 'trytond')))
if os.path.isdir(DIR):
    sys.path.insert(0, os.path.dirname(DIR))

import unittest
import trytond.tests.test_tryton
from trytond.tests.test_tryton import test_view, test_depends

class MylibraryTestCase(unittest.TestCase):
    '''
    Test Mylibrary module.
    '''

    def setUp(self):
        trytond.tests.test_tryton.install_module('mylibrary')

    def test0005views(self):
        '''
        Test views.
        '''
        test_view('mylibrary')

    def test0006depends(self):
        '''
        Test depends.
        '''
        test_depends()

def suite():
    suite = trytond.tests.test_tryton.suite()
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
            MylibraryTestCase))
    return suite

if __name__ == '__main__':
    unittest.TextTestRunner(verbosity=2).run(suite())

- exécuter les tests unitaires
python trytond/modules/mylibrary/tests/test_mylibrary.py

le résultat doit se terminer par :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *