[PYTHON] mémo pytest

Dans le post précédent, j'ai écrit pytest dans la balise mais seulement "J'utilise pytest", donc c'est un mémorandum.

Préparation

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

Après cela, créez un fichier de paramètres pour pytest.

De base

Créez un fichier appelé 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

Et

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

Exécutez le test sur. Si vous spécifiez un répertoire au lieu d'un nom de fichier, tous les tests de ce répertoire seront exécutés. Si vous prenez le nom de méthode "test_", le test ne sera pas exécuté.

Articles fréquemment utilisés

Cette configuration () est effectuée avant d'exécuter tous les tests décrits dans le fichier de test. Je fais souvent de la création d'utilisateurs et du traitement de préparation aux tests. setup()

def setup(self):
  hoge()

teardown() Décrit le processus à exécuter à la fin de chaque test. Si vous remplacez les données de base par les données de test dans setup () et que vous les testez, le processus de restauration est inclus.

def teardown():
  foo()

pytest.raises(Exception) Il est utilisé pour vérifier si une exception s'est produite correctement. Si une exception se produit, le test renverra un résultat normal.

hoge.py


[Cible de test]
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 ("condition")

Spécifiez les conditions pour ignorer le test. S'il est ignoré lorsque le test est exécuté, "s" sera affiché dans le résultat, il est donc plus facile de comprendre que "le test n'a pas été effectué" plutôt que de prendre le nom de la méthode "test_" et de ne pas l'exécuter.

test_hoge.py


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

↑ Dans ce cas, il sera toujours ignoré.

Recommended Posts

mémo pytest
pytest
mémo gzip
Mémo Raspberry-pi
Mémo Python
mémo graphène
Mémo du flacon
mémo pyenv
Mémo Matplotlib
mémo sed
Mémo Python
Installer Memo
Mémo BeautifulSoup4
mémo networkx
mémo python
mémo Tomcat
mémo de commande
Mémo du générateur.
mémo psycopg2
Mémo Python
Mémo SSH
résumé pytest
Mémo: rtl8812
mémo pandas
Mémo Shell
Mémo Python
Mémo Pycharm
Mémo de dévotion AtCoder (11/12)
[OpenCV] Mémo personnel
[Python] Mémo sur le dictionnaire
Mémo push PyPI
mémo d'introduction tensorflow-gpu
Pytest à traction inversée
pytest + webtest + pyramide
Mémo de virtualisation LPIC304
Mémo d'exécution ALDA
mémo débutant python (9.2-10)
youtube télécharger un mémo
Inu x Memo
Mémo d'apprentissage Django
ARC # 016 Mémo de participation
Belle note de soupe
mémo débutant python (9.1)
mémo Linux (ubuntu)
mémo de commande scp
Mémo Primer Flask
mémo céleri / kombu
qui commande mémo
mémo du didacticiel django
Mémo de base Flask
Mémo de commande Linux # 1
★ Mémo ★ Python Iroha
Mémo de reconnaissance du genre
Mémo de lecture d'image
[MEMO] [TERMINAL] Alacritty
Mémo de rotation 3D (1)
[Python] Mémo EDA
Mémo opérateur Python 3
Mémo d'introduction H2O.ai