Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Pytest-Framework: Einrichten und Ausführen Automatisierter Tests | Pytest Framework
Python Fortgeschrittene Konzepte

bookPytest-Framework: Einrichten und Ausführen Automatisierter Tests

Installation

Zunächst muss Pytest installiert werden. Dieser Vorgang ist unkompliziert dank des Python-Paketmanagers pip. Öffne die Kommandozeile oder das Terminal und gib folgenden Befehl ein:

pip install pytest

Es empfiehlt sich, dies im virtuellen Umfeld des Projekts durchzuführen.

Syntax-Erklärung

Ein Grund, warum Pytest in der Python-Community so beliebt ist, liegt in der einfachen und leicht verständlichen Syntax. Im Gegensatz zu manchen anderen Test-Frameworks ermöglicht Pytest das Schreiben von Testcode in einer sehr lesbaren Form. Eine kurze Übersicht:

  • Testdateien: pytest erkennt Dateien, die mit test_ beginnen oder mit _test.py enden;
  • Testfunktionen: Funktionen, die innerhalb dieser Dateien mit test_ beginnen, werden von pytest automatisch als Testfunktionen erkannt;
  • Assertions: Verwende das eingebaute assert-Statement von Python, um zu überprüfen, ob bestimmte Bedingungen erfüllt sind.

Codebeispiele

Das Gelernte lässt sich am besten mit einem einfachen Beispiel anwenden. Angenommen, es gibt eine Funktion namens add, die zwei Zahlen addiert. So könnte ein Test dafür mit Pytest aussehen:

# content of test_example.py
def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
    assert add('space', 'ship') == 'spaceship'

Dieses Codebeispiel zeigt zwei Tests: einen für Zahlen und einen für Zeichenketten. Die assert-Anweisungen prüfen, ob sich die Funktion wie erwartet verhält.

Ausführen von Tests und Interpretation der Ergebnisse

Das Ausführen von Tests mit Pytest ist äußerst einfach. Navigiere in das Verzeichnis, das die Testdatei enthält, und führe folgenden Befehl aus:

pytest

Pytest erkennt und führt automatisch alle Tests im Verzeichnis aus und zeigt einen Bericht an, der angibt, ob jeder Test bestanden oder fehlgeschlagen ist. Das könnte folgendermaßen aussehen:

===================== test session starts ======================
collected 2 items

test_example.py ..                                         [100%]

====================== 2 passed in 0.12s =======================

Jeder Punkt steht für einen bestandenen Test. Pytest liefert für fehlgeschlagene Tests detaillierte Ausgaben, einschließlich der Zeilennummer und des Grundes für das Scheitern, was die Diagnose und Behebung von Problemen erleichtert.

===================== test session starts ======================
collected 2 items

test_example.py .F                                         [100%]

====================== FAILURES ==========================
____________________ test_add _________________________

    def test_add():
>       assert add(2, 3) == 8
E       AssertionError: assert 5 == 8
E        +  where 5 = add(2, 3)

test_example.py:6: AssertionError
===================== 1 passed, 1 failed in 0.23s ======================

Interpretation der Ergebnisse

  • Bestanden (.): Der Test wurde erfolgreich ausgeführt und alle Assertions waren True;
  • Fehlgeschlagen (F): Der Test enthält Assertions, die nicht True waren, was auf ein Problem hinweist;
  • Übersprungen (s): Der Test wurde übersprungen, möglicherweise aufgrund einer konfigurierten Bedingung oder Abhängigkeit.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain more about how to structure larger test suites with Pytest?

What are some common Pytest plugins or features I should know about?

How do I handle setup and teardown for tests in Pytest?

bookPytest-Framework: Einrichten und Ausführen Automatisierter Tests

Swipe um das Menü anzuzeigen

Installation

Zunächst muss Pytest installiert werden. Dieser Vorgang ist unkompliziert dank des Python-Paketmanagers pip. Öffne die Kommandozeile oder das Terminal und gib folgenden Befehl ein:

pip install pytest

Es empfiehlt sich, dies im virtuellen Umfeld des Projekts durchzuführen.

Syntax-Erklärung

Ein Grund, warum Pytest in der Python-Community so beliebt ist, liegt in der einfachen und leicht verständlichen Syntax. Im Gegensatz zu manchen anderen Test-Frameworks ermöglicht Pytest das Schreiben von Testcode in einer sehr lesbaren Form. Eine kurze Übersicht:

  • Testdateien: pytest erkennt Dateien, die mit test_ beginnen oder mit _test.py enden;
  • Testfunktionen: Funktionen, die innerhalb dieser Dateien mit test_ beginnen, werden von pytest automatisch als Testfunktionen erkannt;
  • Assertions: Verwende das eingebaute assert-Statement von Python, um zu überprüfen, ob bestimmte Bedingungen erfüllt sind.

Codebeispiele

Das Gelernte lässt sich am besten mit einem einfachen Beispiel anwenden. Angenommen, es gibt eine Funktion namens add, die zwei Zahlen addiert. So könnte ein Test dafür mit Pytest aussehen:

# content of test_example.py
def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
    assert add('space', 'ship') == 'spaceship'

Dieses Codebeispiel zeigt zwei Tests: einen für Zahlen und einen für Zeichenketten. Die assert-Anweisungen prüfen, ob sich die Funktion wie erwartet verhält.

Ausführen von Tests und Interpretation der Ergebnisse

Das Ausführen von Tests mit Pytest ist äußerst einfach. Navigiere in das Verzeichnis, das die Testdatei enthält, und führe folgenden Befehl aus:

pytest

Pytest erkennt und führt automatisch alle Tests im Verzeichnis aus und zeigt einen Bericht an, der angibt, ob jeder Test bestanden oder fehlgeschlagen ist. Das könnte folgendermaßen aussehen:

===================== test session starts ======================
collected 2 items

test_example.py ..                                         [100%]

====================== 2 passed in 0.12s =======================

Jeder Punkt steht für einen bestandenen Test. Pytest liefert für fehlgeschlagene Tests detaillierte Ausgaben, einschließlich der Zeilennummer und des Grundes für das Scheitern, was die Diagnose und Behebung von Problemen erleichtert.

===================== test session starts ======================
collected 2 items

test_example.py .F                                         [100%]

====================== FAILURES ==========================
____________________ test_add _________________________

    def test_add():
>       assert add(2, 3) == 8
E       AssertionError: assert 5 == 8
E        +  where 5 = add(2, 3)

test_example.py:6: AssertionError
===================== 1 passed, 1 failed in 0.23s ======================

Interpretation der Ergebnisse

  • Bestanden (.): Der Test wurde erfolgreich ausgeführt und alle Assertions waren True;
  • Fehlgeschlagen (F): Der Test enthält Assertions, die nicht True waren, was auf ein Problem hinweist;
  • Übersprungen (s): Der Test wurde übersprungen, möglicherweise aufgrund einer konfigurierten Bedingung oder Abhängigkeit.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2
some-alt