cadre de test pytest (2) --- présentation du montage

table des matières

Premièrement, la définition de la fonction de fixation

Deuxièmement, l'appel de la fonction fixture

Troisièmement, le retour de la fonction fixture

Quatrièmement, l'utilisation de conftest.py

Cinq, cas d'utilisation


Premièrement, la définition de la fonction de fixation

Définir une fonction en tant que fixture est très simple, ajoutez simplement "@ pytest.fixture" avant la déclaration de fonction, et les paramètres sont les suivants:

     fixture (scope = "function", params = None, autouse = False, ids = None, name = None)

     scope : Il existe quatre paramètres de niveau "fonction" (par défaut), "classe", "module" ou "session":

         ☆ Plusieurs fichiers de session peuvent être appelés une fois et peuvent être appelés sur des fichiers .py

         ☆ Le module est appelé une fois pour chaque fichier .py

         ☆ la classe est appelée une fois pour chaque classe

         ☆ fonction, chaque fonction ou méthode sera appelée

     params : une liste de paramètres facultative, la valeur par défaut est None. Quand ce n'est pas None, le fixture sera appelé et exécuté une fois pour chaque valeur dans params, tout comme exécuter une boucle for pour parcourir la valeur dans params une fois;

     autouse : lorsque la valeur par défaut est False, vous pouvez choisir les deux autres façons d'appeler l'appareil. Lorsqu'il est défini sur True, tous les cas de test d'une session appelleront automatiquement ce dispositif;

     ids : Une liste de chaque identifiant de chaîne, chaque chaîne correspond à des paramètres afin qu'ils fassent partie de l'ID de test. Si aucun identifiant n'est fourni, ils seront automatiquement générés à partir des paramètres;

     name : le nom du luminaire, représentant le nom de la fonction décorée.

 

Deuxièmement, l'appel de la fonction fixture

Une fois la fonction fixture définie, si vous souhaitez l'appeler dans un cas de test, il existe trois façons de l'appeler:

    ☆ Appel direct;

    ☆ Utilisez l'appel d'appareil, ajoutez "@ pytest.mark.usefixtures (" nom ")" avant le cas de test;

    ☆ Utilisez le paramètre autouse de l'appareil pour appeler, définissez le paramètre autose sur True, et tous les cas d'utilisation de la session l'appelleront automatiquement.

 

Troisièmement, le retour de la fonction fixture

L'appareil peut renvoyer une valeur, un tuple, une liste ou un dictionnaire.

 

Quatrièmement, l'utilisation de conftest.py

Si plusieurs cas d'utilisation doivent appeler la même fonction. Nous pouvons écrire des fixtures dans le fichier de configuration conftest.py pour réaliser le partage de données, et en même temps faciliter la gestion unifiée de ces fonctions communes.

      La configuration de conftest.py doit faire attention aux points suivants:

      ☆ Le nom du script de configuration conftest.py est fixe et ne peut pas être modifié;

      ☆ conftest.py et le cas d'utilisation en cours d'exécution doivent être dans le même répertoire, et il doit y avoir un fichier __init__.py;

      ☆ Pas besoin d'importer conftest.py, le cas d'utilisation sera automatiquement recherché.

 

Cinq, cas d'utilisation

conftest.py et test_fixture.py sont placés dans le même répertoire et test_fixture.py est le cas de test.

    Le contenu de conftest.py est le suivant:

import pytest

@pytest.fixture()
def user():
    print("获取用户名")
    a = "hillwill"
    b = "wxt"
    return (a,b)

     Le contenu de test_fixture.py est le suivant:

import pytest

def test_1(user):
    user1 = user[0]
    print("用户名1:%s" % user1)
    assert user1 == "hillwill"

def test_2(user):
    user2 = user[1]
    print("用户名2:%s" % user2)
    assert user1 == "wxt"

if __name__ == "__main__":

    pytest.main(["-s", "test_fixture.py"])

 

 

 

Je suppose que tu aimes

Origine blog.csdn.net/wxt_hillwill/article/details/111609285
conseillé
Classement