La différence entre unittest et pytest dans le cadre de tests unitaires Python

Préface

Aujourd'hui, je veux vous parler du framework de tests unitaires Python. Nous savons tous qu'il existe de nombreux frameworks de tests unitaires Python. Celui que nous utilisons habituellement est unittest car il est relativement basique et peut être utilisé pour du développement secondaire. Si votre niveau de développement est très élevé Élevé, le développement intégré de plates-formes de tests automatisés est également possible. Cet article parle principalement de la différence entre unittest et pytest.Par rapport à unittest, pytest a un code simple, une utilisation pratique et flexible et des plug-ins riches. Sans plus tarder, venons-en directement au sujet.

1. Utiliser les règles de rédaction de cas

1. Unittest fournit des cas de test, des suites de tests, des montages de test et des classes liées aux lanceurs de tests pour rendre les tests plus clairs, plus pratiques et plus contrôlables. Lorsque vous rédigez des cas d'utilisation à l'aide de unittest, vous devez respecter les règles suivantes :

  (1) Le fichier de test doit d'abord importer unittest
  (2) La classe de test doit hériter de unittest.TestCase
  (3) La méthode de test doit commencer par "test_"
  (4) La classe de test doit avoir la méthode unittest.main()

2. Pytest est un framework de test tiers pour python. Il s'agit d'un framework d'extension basé sur unittest et est plus simple et plus efficace que unittest. Lorsque vous rédigez des cas d'utilisation à l'aide de pytest, vous devez respecter les règles suivantes :

(1) Le nom du fichier de test doit commencer par "test_" ou se terminer par "_test" (tel que : test_ab.py)
(2) La méthode de test doit commencer par "test_".
(3) Le nom de la classe de test commence par "Test".

Résumé : pytest peut exécuter des cas de test de style unittest sans modifier aucun code du cas unittest et a une bonne compatibilité. Pytest dispose d'une multitude de plug-ins, tels que le plug-in flask, qui peut être utilisé pour réexécuter des cas d'utilisation lorsque des erreurs se produisent ; et le plug-in xdist, qui peut être utilisé pour l'exécution parallèle de périphériques. 

2. Cas pré- et post-utilisation

1.unittest fournit setUp/tearDown, qui ne peut être utilisé que pour tous les cas d'utilisation.

2.pytest fournit une configuration/démontage au niveau du module, de la fonction, de la classe et de la méthode, ce qui est plus flexible que le setUp/tearDown de unittest.

Le niveau de module (setup_module/teardown_module) commence au début et à la fin du module. Le
niveau de fonction global (setup_function/teardown_function) ne prend effet que pour les cas d'utilisation de fonctions (pas dans la classe).
Le niveau de classe (setup_class/teardown_class) uniquement s'exécute une fois avant et après la classe (dans la classe)
Le niveau de méthode (setup_method/teardown_method) commence au début et à la fin de la méthode (dans la classe) et le (
setup/teardown) à l'intérieur de la classe s'exécute avant et après l'appel du méthode.

3.pytest peut également ajouter le décorateur @pytest.fixture() avant la fonction et l'installer dans la fonction luminaire dans le scénario de test. Le champ d'utilisation du luminaire peut être une fonction, un module, une classe, une session.
Firture présente les avantages suivants par rapport à l'installation et au démontage :

La méthode de dénomination est flexible et ne se limite pas à la dénomination de l'installation et du démontage
. Le partage de données peut être réalisé dans la configuration conftest.py. Certaines configurations peuvent être automatiquement trouvées sans importation et peuvent être appelées par plusieurs fichiers py.
scope="module" peut réaliser plusieurs partages de fichiers croisés .py avec le préfixe
scope="session" pour réaliser plusieurs fichiers croisés .py. Utilisez une session pour réaliser plusieurs cas d'utilisation.
Utilisez rendement pour réveiller l'exécution du démontage.

3. Affirmation

1.unittest fournit assertEqual, assertIn, assertTrue et assertFalse.

2.pytest utilise directement l'expression assert.

4. Rapport

1.unittest utilise la bibliothèque HTMLTestRunnerNew.

2.pytest contient des plug-ins pytest-HTML et allure.

5. Réexécuter après un échec

1. Unittest n'a pas cette fonction.

2. Pytest prend en charge la réexécution si l'exécution du cas d'utilisation échoue, plug-in pytest-rerunfailures.

6. Paramétrage

1. Unittest doit s'appuyer sur la bibliothèque ddt.

2. Pytest utilise directement le décorateur @pytest.mark.parametrize.

7. Exécution de la classification des cas d'utilisation

1. Unittest exécute tous les cas d'utilisation par défaut, et vous pouvez également exécuter certains cas d'utilisation en chargeant testsuit.

2. Pytest peut marquer les classes et les méthodes via @pytest.mark. L'ajout de paramètres ("-m") à pytest.main ne peut exécuter que les classes et méthodes marquées.

8. Si cela ne semble pas bon, vous pouvez consulter le tableau suivant :

 De manière générale, le format de cas d'utilisation Unittest est complexe, n'a aucune compatibilité, comporte peu de plug-ins et convient au développement secondaire. pytest est plus pratique et plus rapide. Le format du cas d'utilisation est simple. Il peut exécuter des cas de test de style unittest sans modifier le code du cas d'utilisation unittest. Il a une meilleure compatibilité. Il existe de nombreux plug-ins pytest, tels que le plug-in flask, qui peut être utilisé pour réexécuter des cas d'utilisation lorsque des erreurs se produisent, et le plug-in xdist, qui peut être utilisé pour l'exécution parallèle de périphériques et est plus efficace.

Enfin : ce qui suit est le matériel d'apprentissage de soutien, qui devrait être l'entrepôt de préparation le plus complet et le plus complet pour les amis qui font des [tests de logiciels]. Cet entrepôt m'a également accompagné dans le voyage le plus difficile. J'espère qu'il pourra également vous aider !

Applet d'entretien de test logiciel

Une banque de questions de tests logiciels qui a été utilisée par des millions de personnes ! ! ! Qui est qui sait ! ! ! Le mini-programme de test d'entretien le plus complet sur Internet, vous pouvez utiliser votre téléphone portable pour répondre aux questions, prendre le métro, le bus et le rouler !

Couvre les sections de questions d'entretien suivantes :

1. Théorie de base des tests logiciels, 2. Web, applications, tests de fonctions d'interface, 3. réseau, 4. base de données, 5. Linux

6. Web, application, automatisation d'interface, 7. Tests de performances, 8. Bases de la programmation, 9. Questions d'entretien RH, 10. Questions de test ouvertes, 11. Tests de sécurité, 12. Bases informatiques

  Comment obtenir l'ensemble des informations : Cliquez sur la petite carte ci-dessous pour l'obtenir vous-même

Je suppose que tu aimes

Origine blog.csdn.net/weixin_57794111/article/details/132900758
conseillé
Classement