Appliquer des marqueurs de test

Introduction aux tests en Python

Alexander Levin

Data Scientist

Aperçu des marqueurs de test

  • Cas d'usage 1 : ignorer le test si la condition est remplie
  • Cas d'usage 2 : ce test devrait échouer

  • Marqueur de test : une étiquette (marqueur) d'un test dans la bibliothèque pytest

  • Permet de définir le comportement de tests précis en les étiquetant (les marquant)
Introduction aux tests en Python

Syntaxe des marqueurs

  • Décorateur : un patron de conception en Python qui permet d'ajouter une fonctionnalité à un objet existant sans en modifier la structure
  • Syntaxe des marqueurs de test : commence par le décorateur @pytest.mark :
import pytest

def get_length(string):
    return len(string)

# The test marker syntax
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Introduction aux tests en Python

Marqueurs skip et skipif

  • Utilisez @pytest.mark.skip : quand vous voulez ignorer un test en tout temps
  • Utilisez @pytest.mark.skipif : pour ignorer un test si une condition donnée est True
Introduction aux tests en Python

Exemple : marqueur skip

  • Utilisez @pytest.mark.skip : lorsque vous voulez ignorer un test indéfiniment.
import pytest
def get_length(string):
    return len(string)

# The skip marker example
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Introduction aux tests en Python

Exemple skip : résultat

  • Résultat avec un test ignoré :

exemple de pytest.mark.skip

Introduction aux tests en Python

Exemple : marqueur skipif

  • Utilisez @pytest.mark.skipif : pour ignorer un test si la condition donnée est True.
import pytest
def get_length(string):
    return len(string)

# The skipif marker example
@pytest.mark.skipif('2 * 2 == 5')
def test_get_len():
    assert get_length('abc') == 3
Introduction aux tests en Python

Exemple skipif : résultat

  • Résultat d'un test ignoré sous condition :

exemple de pytest.mark.skipif

Introduction aux tests en Python

Marqueur xfail

  • Utilisez @pytest.mark.xfail : quand vous vous attendez à l'échec d'un test
import pytest

def gen_sequence(n):
    return list(range(1, n+1))

# The xfail marker example
@pytest.mark.xfail
def test_gen_seq():
    assert gen_sequence(-1)
Introduction aux tests en Python

Marqueur xfail : résultat

  • Résultat d'un test attendu en échec :

exemple de pytest.mark.xfail

Introduction aux tests en Python

Résumé

Marqueur de test :

  • Attribut d'un test dans la bibliothèque pytest
  • Sert à définir le comportement de tests précis
  • A une syntaxe qui commence par @pytest.mark.name_of_the_marker
  • Implémentations prêtes à l'emploi dans pytest :
    • @pytest.mark.xfail
    • @pytest.mark.skip
    • @pytest.mark.skipif
Introduction aux tests en Python

Passons à la pratique !

Introduction aux tests en Python

Preparing Video For Download...