Unit Test Log Ausgabe mit Python

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".

Testmethode

testfixtures Verwenden Sie ein Paket namens testfixtures, um zu testen, ob das Protokoll ausgegeben wird.

pip install testfixtures

Anwendungsbeispiel

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

Anwendung

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

Unit Test Log Ausgabe mit Python
Python-Protokoll mit GAE an die Konsole ausgeben
Primzahlbeurteilung mit Python
Primzahlbeurteilung mit Python
Python-Unit-Test-Vorlage
Python-Protokoll wird nicht mit Docker-Compose ausgegeben
Testen Sie den Kolben mit einem Pytest
Testen Sie die Standardausgabe mit Pytest
Ausgabeprotokoll im JSON-Format mit Python-Standardprotokollierung
Machen Sie Apache Log CSV mit Python
Eingabe / Ausgabe mit Python (Python-Lernnotiz ⑤)
Python-Protokoll ausgeben
[Hinweis] Hallo Weltausgabe mit Python
[python3] Implementieren Sie die Debug-Protokollausgabefunktion einfach mit Protokollierung und Klicken
[Python] Super einfacher Test mit Assert-Anweisung
Stresstest mit Locust in Python geschrieben
Testen Sie nicht funktionalisierte Python-Programme mit GitLab CI
WebUI-Test mit Python2.6 + Selenium 2.44.0 - Profileinstellung
Geben Sie Farbzeichen mit Python zu hübsch aus
Generieren Sie japanische Testdaten mit Python faker
Wie man einen Taschentest mit Python macht
Integration mit setuptools / python setup.py test / pytest-runder
UnicodeEncodeError hat Probleme mit der Standardausgabe von Python3
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Python-Lernausgabe
Twilio mit Python
In Python integrieren
Numpy Unit Test
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Python-Integritätstest
Bingo mit Python
Zundokokiyoshi mit Python
Python-Unit-Test
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Erstellen Sie solche Testdaten mit Python (Teil 1)
[Python] Was ich getan habe, um Unit Test zu machen
Lesen Sie JSON mit Python und geben Sie CSV aus
Ich habe versucht, LLVM IR mit Python auszugeben
Melden Sie sich mit Selenium Python bei Yahoo Business an
Python Unit Test Library Einführung in die Nasenoption-19 Typen-
[Kleine Geschichte] Testen Sie die Bilderzeugung mit Python / OpenCV
ARC037 Baum testet höflich mit rekursiver Python-Funktion
Geben Sie die Testfunktion docstring mit pytest-html in den Bericht ein
[CentOS8] So geben Sie die Standard-Python-Ausgabe in das Systemd-Protokoll aus
Serielle Kommunikation mit Python
Primzahlbeurteilung durch Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Socket-Kommunikation mit Python