[PYTHON] Anzeigen der Kolbenabdeckung mit pytest-cov

Einführung

In Letztes Mal habe ich die Abdeckung einer einfachen Funktion mit pytest-cov überprüft. Lassen Sie uns prüfen, ob die Abdeckung auch mit pytest-cov im Kolben überprüft werden kann.

Umgebung

Einfache Überprüfung der Kolbenabdeckung

Um pytest-cov verwenden zu können, benötigen Sie ein Testziel und eine Testquelle. Erstellen Sie diese also. Wenn Sie dies nicht verstehen, lesen Sie bitte [Test eines Kolbens mit Pytest durchführen].

Quelle getestet werden

Die zu testende Quelle ändert sich, um Sie zu sehen, wenn die erfasste Nachricht Tschüss ist, und gibt die Nachricht so zurück, wie sie zu anderen Zeiten ist.

flask_mod.py



from flask import Flask, jsonify
import datetime

app = Flask(__name__)

@app.route('/greeting/<message>')
def sample(message):
    if message == 'bye':
        message = 'see you'
    return message

Quelle, die die Testmethode beschreibt

Ich habe zwei Testquellen mit Message Bye und anderen Mustern erstellt. Wenn der Header korrekt ist, ist das b (binär) der Antwort b'see you'n nicht erforderlich.

pytest_flask_fixture.py



import pytest
from flask_mod import app

@pytest.fixture
def client():
    app.config['TESTING'] = True
    test_client = app.test_client()
    yield test_client
    test_client.delete()

def test_greeting_bye(client):
    result = client.get('/greeting/bye')
    assert b'see you' == result.data

def test_greeting_hello(client):
    result = client.get('/greeting/hello')
    assert b'hello' == result.data

Unit-Test ausführen

Nachdem Sie die Quelle des Testziels und der Testmethode gefunden haben, führen Sie sie aus.

# pytest --cov --cov-branch -v pytest_flask_fixture.py

~~~~ Abkürzung ~~~~~

collected 2 items

pytest_flask_fixture.py ..                           [100%]

----------- coverage: platform win32, python 3.6.5-final-0 -----------
Name                          Stmts   Miss Branch BrPart  Cover
---------------------------------------------------------------
flask_mod.py                  7      0      2      0   100%
pytest_flask_fixture.py      13      0      0      0   100%
---------------------------------------------------------------
TOTAL                            20      0      2      0   100%


====== 2 passed in 0.74s ======

Wenn Sie sich die Ergebnisse ansehen, können Sie sehen, dass der Kolben auch getestet werden kann, da der Zweig von `flax_mod.py `, der die Verarbeitung des Kolbens geschrieben hat, 2 und die Abdeckung 100% ist.

Wie man mit VS Code läuft

Sie können pytest mit einem Befehl eingeben, aber es gibt auch eine Methode, die mit VS-Code ausgeführt werden kann, sodass ich sie zusammenfassen werde.

Verfahren

Verfahren zur Erstellung der Definition

  1. Drücken Sie Strg + Umschalt + p, um die Befehlspalette zu öffnen
  2. Wählen Sie Python: Tests konfigurieren
  3. Wählen Sie pythest
  4. Wählen Sie das Testquellverzeichnis aus (.Root Directory, wenn das Testquellverzeichnis root ist).
  5. Erstellen Sie `pytest.ini `im Testquellverzeichnis. (Name ist fest)

pytest.ini



[pytest]
junit_family = legacy
addopts = -ra -q --cov --cov-branch

Ausführungsverfahren

  1. Drücken Sie Strg + Umschalt + p, um die Befehlspalette zu öffnen
  2. python: Run All Tests
  3. python: Show Test Output

Vorsichtsmaßnahmen für VsCode

Es scheint, dass der Dateiname der Testquelle mit test beginnen muss, z. B. testXXXX.

abschließend

Ich konnte bestätigen, dass Pytest-Cov auch mit Kolben möglich ist. WEB-Dienste unterliegen drastischen Änderungen und Korrekturen, und es gibt APIs und WEB-Seiten für das Ziel, sodass schlechte Korrekturen andere Standorte betreffen können. Aus diesem Grund wird die Testautomatisierung verbessert, aber gleichzeitig denke ich, dass genauere Tests zur Bestätigung der Auswirkungen durchgeführt werden können, wenn die Abdeckung überprüft wird.

Recommended Posts

Anzeigen der Kolbenabdeckung mit pytest-cov
Überprüfen Sie die Python-Abdeckung mit pytest-cov
IP-Einschränkung mit Flask
Hallo Welt auf Flasche
Programmieren mit Python Flask
Stellen Sie Flask jetzt mit ZEIT bereit
Berühre Flask + laufe mit Heroku
Testen Sie den Kolben mit einem Pytest
API mit Flask + uWSGI + Nginx
Entwicklung von Webanwendungen mit Flask
Webanwendung mit Python + Flask ② ③
Datei-Upload mit Flask + jQuery
Webanwendung mit Python + Flask ④
[LINE-Anmeldung] Überprüfen Sie den Status mit Flask
Wenn ein _sqlite3-Fehler in der Abdeckung auftritt
Mit LYTRO ILLUM aufgenommene Fotos anzeigen
Mit Flask erstellte SNS Python-Grundlagen
Zeigen Sie die Ergebnisse der Pytest-Abdeckung von CircleCI an
Messen Sie die Abdeckung der Django-Anwendung mit Coverage.py
[Memo] Links bei der Entwicklung mit Flask
Erstellen eines Flask-Servers mit Docker
Führen Sie die App mit Flask + Heroku aus
Behalten Sie den Flask API-Server für immer bei
Basisauthentifizierung, Digest-Authentifizierung mit Flask
Erstellen Sie eine Flask-Umgebung mit Dockerfile + docker-compose.yml
Post Bulletin Board Erstellung mit Flasche
Anwendungsentwicklung mit Docker + Python + Flask
Bild-Upload-Funktion mit Vue.js + Flask