Utilisation de Pytest, démarrage rapide et explication de base

  • Il existe actuellement deux frameworks de tests purs, pytest et unittest
  • unittest devrait être largement connu, et c'est aussi un ancien framework. Beaucoup de gens l'utilisent pour l'automatisation, que ce soit l'interface utilisateur ou l'interface
  • pytest est un autre cadre de test unitaire plus avancé et utile développé sur la base de unittest

Pourquoi utiliser Pytest

Selon le site officiel de pytest, il a les caractéristiques suivantes :

  1. Très facile à utiliser, facile à démarrer, riche en documentation, et il y a de nombreux exemples dans la documentation pour référence
  2. Capable de supporter des tests unitaires simples et des tests fonctionnels complexes
  3. Prise en charge du paramétrage
  4. Lors de l'exécution du test, certains tests peuvent être ignorés (sauter), ou certains cas d'échec attendus peuvent être marqués comme échec
  5. Prise en charge des cas d'échec d'exécution répétée (réexécution)
  6. Prend en charge l'exécution de cas de test écrits par nez, unittest
  7. Peut générer un rapport html
  8. Outil d'intégration pratique et continu Jenkins Integration
  9. Certains cas d'utilisation peuvent être pris en charge
  10. Possède de nombreux plug-ins tiers et peut être personnalisé

Installer pytest

cmd exécuter


pip install -U pytest

pip3 install pytest -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

afficher la version

pytest --version

le code

def func(x):
    return x + 1


def test_answer():
    assert func(3) == 5


class TestClass:
    def test_one(self):
        x = "this"
        assert "h" in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, "check")

points de connaissance

  • Si seul pytest est exécuté, il recherchera le fichier test_*.py ou *_test.py dans le répertoire courant et ses sous-répertoires. Après avoir trouvé le fichier, recherchez la fonction commençant par test dans le fichier et exécutez-la
  • Si vous ne voulez exécuter qu'un certain fichier, vous pouvez 
    • pytest start.py 
  • Ajoutez -q pour afficher des résultats simples :
    • pytest -q start.py 

Principes de conception des cas d'utilisation de Pytest

Lorsque vous écrivez des cas de test avec Pytest, assurez-vous de suivre les règles ci-dessous, sinon les cas de test qui ne sont pas conformes aux règles ne seront pas exécutés

  • Les noms de fichiers commencent par les fichiers test_*.py et *_test.py
  • fonctions commençant par test_
  • Les classes commençant par Test ne peuvent pas contenir de méthodes __init__
  • Méthodes dans les classes commençant par test_
  • Tous les packages doivent avoir le fichier __init__.py

 Pytest exécute les règles de cas d'utilisation

Notez que ce qui suit concerne l'exécution des commandes pytest dans cmd

1. Tous les cas d'utilisation dans un certain répertoire


pytest

2. Exécutez le cas d'utilisation sous un certain fichier py 

pytest 脚本名称.py

3. Exécutez une fonction dans le module start.py, ou une classe, ou une méthode dans une classe

Vous pouvez ajouter v ou ne pas ajouter -v, si vous ajoutez -v, les informations imprimées seront plus détaillées

pytest -v 08_mark.py::TestClass::test_method

pytest 08_mark.py::TestClass::test_method

pytest start.py::test_answer

4. Exécutez le module start.py pour tester une méthode dans la classe

pytest start.py::TestClass::test_two

5. Expression de la marque -m (explication suivante)

 pytest -m login

exécutera tous les tests décorés avec le décorateur @pytest.mark.login, et nous développerons le marquage plus tard

6. -q impression simple, n'imprime que le résultat d'exécution du cas de test

 pytest -q start.py

7. -s imprimer en détail

pytest -s start.py

8. -x Arrête le test lorsqu'une erreur est rencontrée

pytest start.py -x

9. --maxfail=num, lorsque le nombre d'erreurs de cas d'utilisation atteint le nombre spécifié, arrête le test

pytest start.py --maxfail=1

10. -k correspond au nom du cas d'utilisation

Exécute tous les cas de test dont le nom de cas de test contient http

pytest -s -k http start.py

11. -k Exclure certains cas d'utilisation en fonction du nom du cas d'utilisation

pytest -s -k "not http" start.py

12. -k correspond à différents noms de cas d'utilisation en même temps

pytest -s -k "method or weibo" start.py

Pycharm exécute Pytest

Nous écrivons généralement du code dans Pycharm, comment pouvons-nous utiliser cmd pour exécuter les cas d'utilisation tout le temps, voyons maintenant comment exécuter Pytest dans Pycharm

  1. Tout d'abord, nous allons d'abord dans les paramètres pour définir le cadre de test unitaire comme Pytest
  2. S'il s'agit de nosetests, le clic droit pour exécuter est exécuté par un script python
  3. Si unittest est défini, il s'exécutera avec le framework unittest

Je suppose que tu aimes

Origine blog.csdn.net/qq_41663420/article/details/129796964
conseillé
Classement