Bonjour sekitaka.
Je produis généralement des journaux avec désinvolture, mais parfois je veux tester que les journaux sont générés. Cet article vous montrera comment tester que "les journaux sont en cours de sortie".
testfixtures Pour tester que le journal est en cours de sortie, utilisez un package appelé test fixtures.
pip install testfixtures
L'exemple suivant teste qu'une fonction appelée put_log génère un journal appelé foo
au niveau INFO.
# coding=utf-8
from testfixtures import LogCapture
import logging
from unittest import TestCase
import unittest
logger = logging.getLogger()
def put_log(message):
logger.info(message)
class Test(TestCase):
def test_put_log(self):
with LogCapture() as l:
put_log("foo")
l.check(
("root","INFO","foo")
)
if __name__ == '__main__':
unittest.main
L'argument de LogCapture ()
vous permet de filtrer le nom de l'enregistreur, le niveau de journalisation à capturer, etc.
De plus, en définissant log_str = str (l)
, vous pouvez obtenir le texte intégral du journal dans le format suivant sous forme de chaîne de caractères, il peut donc être bon de tester avec des assertions telles que la correspondance d'expressions régulières.
root INFO
foo
Mais je m'inquiète toujours de la distance à tester
Recommended Posts