当前位置:网站首页>Pytest Collection (2) - mode de fonctionnement pytest
Pytest Collection (2) - mode de fonctionnement pytest
2022-07-01 21:36:00 【Fais - le. Kiss】
Un.、Exécution en mode ligne de commande
1、Exécution en mode ligne de commandepytest
Le Bureau de l'ordinateur crée untest_sample.pyNouveau fichier pour,Contient des fonctions et des cas d'essai.
# content of test_sample.py
def func(x):
return x + 1
def test_answer():
assert func(3) == 5Ouvre.test_sample.pyDans le dossier,cmdCommande d'entrée de fenêtre:pytest.pytestTrouve tout dans le répertoire courant et ses sous - répertoires pourtest_*.pyOu*_test.pyDocumentation,Puis exécutez dans le fichiertestFonction de démarrage.Voir détailspytestRègles de collecte des cas d'essai.


Microsoft Windows [Version 10.0.19044.1766]
(c) Microsoft Corporation.Tous droits réservés.C:\Users\057776\Desktop>pytest
==================================== test session starts ====================================
platform win32 -- Python 3.8.8, pytest-6.2.3, py-1.10.0, pluggy-0.13.1
rootdir: C:\Users\057776\Desktop
plugins: html-3.1.1, metadata-1.11.0, rerunfailures-9.1.1, assume-2.2.0, requests-mock-1.7.0
collected 1 itemtest_sample.py F [100%]
====================================== FAILURES ======================================
_______________________________________ test_answer _______________________________________def test_answer():
> assert func(3) == 5
E assert 4 == 5
E + where 4 = func(3)test_sample.py:18: AssertionError
================================= short test summary info =================================
FAILED test_sample.py::test_answer - assert 4 == 5
==================================== 1 failed in 0.70s ====================================C:\Users\057776\Desktop>
Description:
- collected 1 item:pytest En cours d'exécution, un total de 1Cas d'essai.
- test_sample.py F:Marqué commeF Est que le résultat du test a échoué .
- [100%] : Indique l'état d'avancement global de l'exécution de tous les cas d'essai .
- FAILURES: Sortie d'un message d'erreur détaillé , Aidez - nous à analyser la raison du test ,Nous pouvons voir"assert func(3) == 5"Cette déclaration a mal tourné,La raison de l'erreur estfunc(3)=4, Et nous avons affirmé func(3) égal à 5.
2、pytest Exécuter le marqueur de résultat
- . Point No.,Indique que le cas d'utilisation passe
- F Indique un échec Failure
- E Indique une exception dans le cas d'utilisation Error
- S Indique que le cas d'utilisation a été omis Skip
- x En minuscules x Indique un échec attendu xfail
- X En majuscules X Indique un échec attendu ,Mais ça a marché.
2.、PycharmEn cours
1、TerminalFonctionnement dans le terminal
pycharmLa liste des projets est la suivante,Sélectionnertest_sample.pyDocumentation,Clic droit de la sourisOpen in | Open in Terminal,En mode ligne de commande, saisissezpytest

Microsoft Windows [Version 10.0.19044.1766]
(c) Microsoft Corporation.Tous droits réservés.(venv) C:\Users\057776\PycharmProjects\pytest-demo\testcases>pytest
================================== test session starts ===================================
platform win32 -- Python 3.8.8, pytest-6.2.3, py-1.10.0, pluggy-0.13.1
rootdir: C:\Users\057776\PycharmProjects\pytest-demo\testcases
plugins: html-3.1.1, metadata-1.11.0, rerunfailures-9.1.1, assume-2.2.0, requests-mock-1.7.0
collected 1 itemtest_sample.py F [100%]
===================================== FAILURES =====================================
______________________________________ test_answer ______________________________________def test_answer():
> assert func(3) == 5
E assert 4 == 5
E + where 4 = func(3)test_sample.py:18: AssertionError
================================ short test summary info ================================
FAILED test_sample.py::test_answer - assert 4 == 5
=================================== 1 failed in 0.60s ===================================(venv) C:\Users\057776\PycharmProjects\pytest-demo\testcases>
2、 Configurer l'exécuteur d'essai
Nous pouvons également choisir par défaut en configurant pytestDe la façon dontpyDocumentation.
File | Settings | Tools | Python Integrated Tools



3、pytest.main()Méthodes
pytest.main() La méthode peut servir d'entrée pour l'exécution des cas d'essai de nos projets d'essai automatisés ,En bas, on apytest.main()Donner des explications.
Modifier ci - dessustest_sample.pyLes documents sont les suivants:
import pytest
# content of test_sample.py
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
if __name__ == '__main__':
pytest.main()
# pytest.main(['test_sample.py'])
# pytest.main(['-q','test_sample.py'])
Description:
- pytest.main() :Aucun paramètre, Tous les cas de test dans le répertoire courant sont recueillis , équivalent à l'entrée d'une commande en mode ligne de commande pytest.
- pytest.main(['test_sample.py']) :Un paramètre,Exécuter le fichier spécifiétest_sample.pyTous les cas d'essai pour.
- pytest.main(['-q','test_sample.py']) :Deux paramètres,Paramètres-qIndique le mode silencieux, Ne pas exporter d'informations environnementales.
(1)pytest.main()Analyse des sources
def main(
args: Optional[Union[List[str], py.path.local]] = None,
plugins: Optional[Sequence[Union[str, _PluggyPlugin]]] = None,
) -> Union[int, ExitCode]:
"""Perform an in-process test run.
:param args: List of command line arguments.
:param plugins: List of plugin objects to be auto-registered during initialization.
:returns: An exit code.
"""
try:
try:
config = _prepareconfig(args, plugins)
except ConftestImportFailure as e:
exc_info = ExceptionInfo(e.excinfo)
tw = TerminalWriter(sys.stderr)
tw.line(f"ImportError while loading conftest '{e.path}'.", red=True)
exc_info.traceback = exc_info.traceback.filter(
filter_traceback_for_conftest_import_failure
)
exc_repr = (
exc_info.getrepr(style="short", chain=False)
if exc_info.traceback
else exc_info.exconly()
)
formatted_tb = str(exc_repr)
for line in formatted_tb.splitlines():
tw.line(line.rstrip(), red=True)
return ExitCode.USAGE_ERROR
else:
try:
ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main(
config=config
)
try:
return ExitCode(ret)
except ValueError:
return ret
finally:
config._ensure_unconfigure()
except UsageError as e:
tw = TerminalWriter(sys.stderr)
for msg in e.args:
tw.line(f"ERROR: {msg}\n", red=True)
return ExitCode.USAGE_ERRORJe vois., main() .La fonction accepte deux arguments:
- args :Liste des paramètres de la ligne de commande, Les mêmes paramètres que l'exécution en mode ligne de commande ,Dans la Liste List Avec une chaîne str Forme, Paramètres multiples “,” Séparation, Il est également possible de passer au test caseChemin vers.
- plugins : Pour les paramètres du plug - in , Liste des objets plug - in à enregistrer automatiquement lors de l'initialisation .
(2).pytest_cacheDossiers

pytest Une fois que tous les cas de test ont été exécutés dans le cadre de test, ils sont générés dans le répertoire courant .pytest_cache , Il contient des informations sur la dernière exécution du cas d'utilisation .
reference:
边栏推荐
猜你喜欢

Review notes of Zhang Haifan in introduction to software engineering (Sixth Edition)

杰理之、产线装配环节【篇】

在技术升级中迎合消费者需求,安吉尔净水器“价值战”的竞争之道

Data analysts sound tall? Understand these points before you decide whether to transform

深度学习 神经网络基础

leetcode刷题:二叉树02(二叉树的中序遍历)

【Leetcode】最大连续1的个数

EURA eurui E1000 series inverter uses PID to realize the relevant parameter setting and wiring of constant pressure water supply function

小鸟逃票登机,如何反思,应如何解决,飞机为何怕小鸟?

基于K-means的用户画像聚类模型
随机推荐
8K HDR!| Hevc hard solution for chromium - principle / Measurement Guide
Oracle deadlock test
Learn white box test case design from simple to deep
杰理之烧录都使用 VBAT 供电,供电电压 4.2V【篇】
Past and present life of product modular design
杰理之蓝牙耳机品控和生产技巧【篇】
Accelera Systems Initiative是一个独立的非营利组织
Using qeventloop to realize synchronous waiting for the return of slot function
合成大西瓜小游戏微信小程序源码/微信游戏小程序源码
Uniapp uses Tencent map to select points without window monitoring to return users' location information. How to deal with it
都能看懂的LIS(最长上升子序列)问题[通俗易懂]
Practical project notes (I) -- creation of virtual machine
【STM32】STM32CubeMX教程二–基本使用(新建工程点亮LED灯)
Common components of flask
2022年高处安装、维护、拆除考题模拟考试平台操作
EURA eurui E1000 series inverter uses PID to realize the relevant parameter setting and wiring of constant pressure water supply function
一次调试去了解redis集群的slot机制
EMC-电路保护器件-防浪涌及冲击电流用
在技术升级中迎合消费者需求,安吉尔净水器“价值战”的竞争之道
On the usage of a magic function