Pytest - Tests de paramétrage

Le paramétrage d'un test est effectué pour exécuter le test sur plusieurs ensembles d'entrées. Nous pouvons le faire en utilisant le marqueur suivant -

@pytest.mark.parametrize

Copiez le code ci-dessous dans un fichier appelé test_multiplication.py -

import pytest

@pytest.mark.parametrize("num, output",[(1,11),(2,22),(3,35),(4,44)])
def test_multiplication_11(num, output):
   assert 11*num == output

Ici, le test multiplie une entrée par 11 et compare le résultat avec la sortie attendue. Le test comporte 4 ensembles d'entrées, chacune a 2 valeurs - l'une est le nombre à multiplier par 11 et l'autre est le résultat attendu.

Exécutez le test en exécutant la commande suivante -

Pytest -k multiplication -v

La commande ci-dessus générera la sortie suivante -

test_multiplication.py::test_multiplication_11[1-11] PASSED
test_multiplication.py::test_multiplication_11[2-22] PASSED
test_multiplication.py::test_multiplication_11[3-35] FAILED
test_multiplication.py::test_multiplication_11[4-44] PASSED
============================================== FAILURES
==============================================
_________________ test_multiplication_11[3-35] __________________
num = 3, output = 35
   @pytest.mark.parametrize("num, output",[(1,11),(2,22),(3,35),(4,44)])
   def test_multiplication_11(num, output):
>  assert 11*num == output
E  assert (11 * 3) == 35
test_multiplication.py:5: AssertionError
============================== 1 failed, 3 passed, 8 deselected in 0.08 seconds
==============================