Hallo Sekitaka.
Normalerweise gebe ich Protokolle beiläufig aus, aber manchmal möchte ich testen, ob die Protokolle ausgegeben werden. Dieser Artikel zeigt Ihnen, wie Sie testen können, ob "Protokolle ausgegeben werden".
testfixtures Verwenden Sie ein Paket namens testfixtures, um zu testen, ob das Protokoll ausgegeben wird.
pip install testfixtures
Das folgende Beispiel testet, dass eine Funktion namens put_log ein Protokoll namens "foo" auf INFO-Ebene ausgibt.
# 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
Mit dem Argument "LogCapture ()" können Sie den Namen des Protokollierers, die zu erfassende Protokollebene usw. filtern. Wenn Sie "log_str = str (l)" setzen, können Sie den vollständigen Text des Protokolls im folgenden Format als Zeichenfolge abrufen. Daher kann es sinnvoll sein, mit Zusicherungen wie dem Abgleich regulärer Ausdrücke zu testen.
root INFO
foo
Aber ich mache mir immer Sorgen darüber, wie weit ich testen soll
Recommended Posts