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
============================