Pytest - Xfail / Salta test

In questo capitolo impareremo i test Skip e Xfail in Pytest.

Ora, considera le seguenti situazioni:

  • Un test non è rilevante per qualche tempo a causa di alcuni motivi.
  • È in fase di implementazione una nuova funzionalità e abbiamo già aggiunto un test per quella funzionalità.

In queste situazioni, abbiamo la possibilità di fallire il test o saltare i test.

Pytest eseguirà il test xfailed, ma non sarà considerato come test parzialmente fallito o superato. I dettagli di questi test non verranno stampati anche se il test fallisce (ricorda che pytest di solito stampa i dettagli del test fallito). Possiamo xfail test usando il seguente marker:

@pytest.mark.xfail

Saltare un test significa che il test non verrà eseguito. Possiamo saltare i test usando il seguente marcatore:

@pytest.mark.skip

Successivamente, quando il test diventa rilevante, possiamo rimuovere i marcatori.

Modifica il file test_compare.py dobbiamo già includere i marcatori xfail e skip -

import pytest
@pytest.mark.xfail
@pytest.mark.great
def test_greater():
   num = 100
   assert num > 100

@pytest.mark.xfail
@pytest.mark.great
def test_greater_equal():
   num = 100
   assert num >= 100

@pytest.mark.skip
@pytest.mark.others
def test_less():
   num = 100
   assert num < 200

Eseguire il test utilizzando il seguente comando:

pytest test_compare.py -v

Al momento dell'esecuzione, il comando precedente genererà il seguente risultato:

test_compare.py::test_greater xfail
test_compare.py::test_greater_equal XPASS
test_compare.py::test_less SKIPPED
============================ 1 skipped, 1 xfailed, 1 xpassed in 0.06 seconds
============================