[PYTHON] pytest memo

Im vorherigen Beitrag habe ich pytest in das Tag geschrieben, aber nur "Ich verwende pytest", es ist also ein Memorandum.

Vorbereitung

pip install pytest
pip install pytest-django
pip install pytest-pythonpath

Erstellen Sie anschließend eine Einstellungsdatei für pytest.

Basic

Erstellen Sie eine Datei mit dem Namen test_hoge.py

test_hoge.py


import pytest

@pytest.mark.django_db(transaction=True)
def test_hoge(self):
  result = foo.get_money(id=1)
  assert result == 100

Und

py.test test_hoge.py --create-db (oder--reuse-db)

Führen Sie den Test weiter aus. Wenn Sie anstelle eines Dateinamens ein Verzeichnis angeben, werden alle Tests in diesem Verzeichnis ausgeführt. Wenn Sie den Methodennamen "test_" verwenden, wird der Test nicht ausgeführt.

Häufig verwendete Gegenstände

Dieses Setup () wird durchgeführt, bevor alle in der Testdatei beschriebenen Tests ausgeführt werden. Ich mache oft Benutzererstellung und Testvorbereitungsverarbeitung. setup()

def setup(self):
  hoge()

teardown() Beschreibt den Prozess, der am Ende jedes Tests ausgeführt werden soll. Wenn Sie die Stammdaten durch die Testdaten in setup () ersetzen und testen, ist der Prozess zum Wiederherstellen enthalten.

def teardown():
  foo()

pytest.raises(Exception) Es wird verwendet, um zu überprüfen, ob eine Ausnahme ordnungsgemäß aufgetreten ist. Wenn eine Ausnahme auftritt, gibt der Test ein normales Ergebnis zurück.

hoge.py


[Testziel]
class Hoge():
  def foo(id):
    try:
      return ItemMaster.get(id)
    except DoesNotExist:
      raise IllegalIdError

test_hoge.py


import pytest
import IllegalIdError

@pytest.mark.django_db(transaction=True)
def test_foo():
  with pytest.raises(IllegalIdError):
    Hoge.foo(-100000)

pytest.mark.skipif ("Bedingung")

Geben Sie die Bedingungen an, um den Test zu überspringen. Wenn es bei der Ausführung des Tests übersprungen wird, wird im Ergebnis "s" angezeigt, sodass leichter zu verstehen ist, dass "der Test nicht durchgeführt wurde", anstatt den Methodennamen "test_" zu verwenden und ihn nicht auszuführen.

test_hoge.py


@pytest.mark.skipif("True")
def test_hoge(self):
  assert is_hoo(id=1)

↑ In diesem Fall wird es immer übersprungen.

Recommended Posts

pytest memo
pytest
gzip memo
Himbeer-Pi-Memo
Python-Memo
Graphen-Memo
Kolben Memo
pyenv memo
Matplotlib-Memo
sed memo
Python-Memo
Installieren Sie Memo
BeautifulSoup4 Memo
networkx memo
Python-Memo
Kater Memo
Befehlsnotiz
Generator Memo.
psycopg2 memo
Python-Memo
SSH-Memo
pytest Zusammenfassung
Notiz: rtl8812
Pandas Memo
Shell Memo
Python-Memo
Pycharm-Memo
AtCoder Andachtsnotiz (11/12)
[OpenCV] Persönliches Memo
PyPI-Push-Memo
Tensorflow-GPU Einführungsnotiz
Reverse Pull Pytest
pytest + webtest + pyramide
LPIC304 Virtualisierungsnotiz
ALDA-Ausführungsnotiz
Python-Anfänger-Memo (9.2-10)
youtube download memo
Inu x Memo
Django Lernnotiz
ARC # 016 Teilnahmememo
Schöne Suppe Memo
Python-Anfänger-Memo (9.1)
Linux (Ubuntu) Memo
scp befehlsnotiz
Kolbengrundierung Memo
Sellerie / Kombu Memo
Wer befiehlt Memo
Django Tutorial Memo
Flask Grundnotiz
Linux # Command Memo 1
★ Memo ★ Python Iroha
Memo zur Geschlechtserkennung
Bildlesememo
[MEMO] [TERMINAL] Alacritty
Notiz der 3D-Rotation (1)
[Python] EDA-Memo
Python 3-Operator-Memo
H2O.ai Einführungsnotiz