当前位置:网站首页>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) == 5
Ouvre.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_ERROR
Je 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:
边栏推荐
- 芭比Q了!新上架的游戏APP,咋分析?
- Uniapp uses Tencent map to select points without window monitoring to return users' location information. How to deal with it
- Big factories are wolves, small factories are dogs?
- 同花顺股票开户选哪个券商好手机开户是安全么?
- Past and present life of product modular design
- 人才近悦远来,望城区夯实“强省会”智力底座
- 如何用OpenMesh创建一个四棱锥
- 开环和闭环是什么意思?
- 图片拼图微信小程序源码_支持多模板制作和流量主
- 杰理之蓝牙耳机品控和生产技巧【篇】
猜你喜欢
Detailed explanation and code example of affinity propagation clustering calculation formula based on graph
杰理之、产线装配环节【篇】
Détection des cibles - série Yolo
深度学习 常见的损失函数
Vulnerability recurrence - Net ueeditor upload
小鸟逃票登机,如何反思,应如何解决,飞机为何怕小鸟?
柒微自动发卡系统源码
王者战力查询改名工具箱小程序源码-带流量主激励广告
latex如何打空格
多个张量与多个卷积核做卷积运算的输出结果
随机推荐
Big factories are wolves, small factories are dogs?
基于YOLOv5的口罩佩戴检测方法
4. 对象映射 - Mapping.Mapstercover
杰理之、产线装配环节【篇】
联想电脑怎么连接蓝牙耳机?
Gaussdb (for MySQL):partial result cache, which accelerates the operator by caching intermediate results
2022安全员-A证考题及在线模拟考试
小鸟逃票登机,如何反思,应如何解决,飞机为何怕小鸟?
leetcode刷题:栈与队列07(滑动窗口最大值)
leetcode刷题:栈与队列05(逆波兰表达式求值)
burpsuite简单抓包教程[通俗易懂]
喜马拉雅自研网关架构演进过程
How to create a pyramid with openmesh
Data analysts sound tall? Understand these points before you decide whether to transform
PMP证书真的有用吗?
九章云极DataCanvas公司蝉联中国机器学习平台市场TOP 3
杰理之烧录上层版物料需要【篇】
String类型转换BigDecimal、Date类型
【Opencv450】HOG+SVM 与Hog+cascade进行行人检测
杰理之、产线装配环节【篇】