[Python2.7] Résumé de l'utilisation d'unittest

Manuel

25.3. Unittest - Framework de test unitaire - Documentation Python 2.7.x

modèle

Certaines personnes ont déjà créé un modèle, je pense donc que vous devriez vous référer à ce qui suit. modèle de test unitaire python-Qiita

Voici un exemple de test de configuration minimale.

Exemple de test de configuration minimale


import unittest

class UnitTest(unittest.TestCase):
    def test1(self):
        self.assertEqual(1, 1)

if __name__ == '__main__':
    unittest.main()

Exemple d'exécution


.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

※point important Le test à exécuter doit commencer par «test» dans le nom de la méthode.

assert méthode

Method Contenu de l'évaluation
assertEqual(a, b) a == b
assertNotEqual(a, b) a != b
assertTrue(x) bool(x) is True
assertFalse(x) bool(x) is False
assertIs(a, b) a is b
assertIsNot(a, b) a is not b
assertIsNone(x) x is None
assertIsNotNone(x) x is not None
assertIn(a, b) a in b
assertNotIn(a, b) a not in b
assertIsInstance(a, b) isinstance(a, b)
assertNotIsInstance(a, b) not isinstance(a, b)

Veuillez consulter ce qui suit pour plus de détails. Il y en a beaucoup d'autres. 25.3. Unittest - Framework de test unitaire - Documentation Python 2.7.x-

Exécute un traitement spécifique à l'initialisation / à la fin

À l'initialisation / à la fin du test entier

Exécuté lorsque tout le test est initialisé


def setUpModule():
    pass

Exécuter à la fin de tout le test


def tearDownModule():
    pass

Initialisation / sortie de TestCase

Exécuter à l'initialisation de Testcase


class HogeTest(unittest.TestCase):
#...
    @classmethod
    def setUpClass(cls):
        pass

Exécuter à la fin de TestCase


class HogeTest(unittest.TestCase):
#...
    @classmethod
    def tearDownClass(cls):
        pass

Appareil de test (chaque test dans TastCase) À l'initialisation / à la fin

Exécuter à l'initialisation de Testcase


class HogeTest(unittest.TestCase):
#...
    def setUp(self):
        pass

Exécuter à la fin de TestCase


class HogeTest(unittest.TestCase):
#...
    def tearDown(self):
        pass

Ordre d'exécution

Voici le journal lorsque le test suivant est exécuté.

Exemple de confirmation d'ordre d'exécution de chaque fonction (extrait)


def setUpModule():
    print '## setUpModule!'

def tearDownModule():
    print '## tearDownModule!'
    print unittest.TestResult

class HogeTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print '## setUpClass!'
        pass

    @classmethod
    def tearDownClass(cls):
        print '## tearDownClass!'

    def setUp(self):
        print '## setUp!'

    def tearDown(self):
        print '## tearDown!'

    def test1(self):
        expected = 1
        actual = 1
        self.assertEqual(expected, actual)

Résultat d'exécution


.....
----------------------------------------------------------------------
Ran 1 tests in 0.000s

OK
## setUpModule!
## setUpClass!
## setUp!
## tearDown!
## tearDownClass!
## tearDownModule!

Obtenez les résultats des tests

Vous pouvez l'obtenir avec la classe TestResult. Dans ʻunittest.main () `fréquemment utilisé, il est implémenté comme suit.

unittest.main()En entrant


def main()
    #Par défaut sys.exit()Sera appelé, alors sortez=Spécifiez False
    test_program = unittest.main(exit=False)
    test_result = test_program.result

Veuillez vous référer à ce qui suit pour le contenu qui peut être obtenu par TestResult.

25.3. Unittest - Framework de test unitaire - Documentation Python 2.7.x

Obtenez le temps d'exécution de chaque test sous forme de variable

python - How to know time spent on each test when using unittest? - Stack Overflow

référence

modèle de test unitaire python-Qiita Bibliothèque: unittest --Life with Python python - Unittest causing sys.exit() - Stack Overflow Lors de l'écriture d'un test avec python unittest, utilisez doCleanups pour une configuration qui peut échouer --Qiita

Recommended Posts

[Python2.7] Résumé de l'utilisation d'unittest
[Python] Résumé de l'utilisation des pandas
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
Résumé de l'utilisation de MNIST avec Python
Résumé de l'utilisation de pandas.DataFrame.loc
Résumé de l'utilisation de pyenv-virtualenv
Résumé de l'utilisation de csvkit
[Question] Comment utiliser plot_surface de python
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
[Python] Comment utiliser deux types de type ()
python3: Comment utiliser la bouteille (2)
Résumé de la façon d'importer des fichiers dans Python 3
[Python] Comment utiliser la liste 1
Comment utiliser Python Argparse
Python: comment utiliser pydub
[Python] Comment utiliser checkio
Résumé de l'étude de Python pour utiliser AWS Lambda
[Python] Comment utiliser input ()
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser les octets Python
J'ai essayé de résumer comment utiliser matplotlib de python
Comment utiliser Python Kivy ① ~ Bases du langage Kv ~
[Python] Résumé de la façon de spécifier la couleur de la figure
Python: comment utiliser async avec
[Python] Comment utiliser la série Pandas
Comment utiliser les requêtes (bibliothèque Python)
Comment utiliser SQLite en Python
[Python] Comment utiliser la liste 3 Ajouté
Comment utiliser Mysql avec python
Comment utiliser l'API Python d'OpenPose
Comment utiliser ChemSpider en Python
Python: Comment utiliser pydub (lecture)
Comment utiliser PubChem avec Python
Comment utiliser la fonction zip de python
[Python] Comment utiliser l'API Typetalk
[python] Résumé de la récupération des listes et des éléments du dictionnaire
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
[Introduction à Python] Comment utiliser la classe en Python?
scikit-learn Comment utiliser le résumé (apprentissage automatique)
Comment installer et utiliser pandas_datareader [Python]
[python] Comment utiliser __command__, explication des fonctions
Comment calculer Utiliser% de la commande df
[Python] Comment utiliser import sys sys.argv
[Python] Organisation de l'utilisation des instructions
python: Comment utiliser les locals () et globals ()
Comment utiliser __slots__ dans la classe Python
Jupyter Notebook Principes d'utilisation
Comment utiliser "deque" pour les données Python
Bases de PyTorch (1) -Comment utiliser Tensor-
Comment utiliser le zip Python et énumérer
[Python] Comprendre comment utiliser les fonctions récursives
Comment utiliser les expressions régulières en Python
Comment utiliser is et == en Python
Résumé de l'écriture d'AWS Lambda
Comment utiliser Python Kivy (référence) -J'ai traduit le langage Kivy de la référence API-