当前位置:网站首页>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:
边栏推荐
- 图片拼图微信小程序源码_支持多模板制作和流量主
- Uniapp uses Tencent map to select points without window monitoring to return users' location information. How to deal with it
- 基于YOLOv5的口罩佩戴检测方法
- 小鸟逃票登机,如何反思,应如何解决,飞机为何怕小鸟?
- Review notes of Zhang Haifan in introduction to software engineering (Sixth Edition)
- 《軟件工程導論(第六版)》 張海藩 複習筆記
- 王者战力查询改名工具箱小程序源码-带流量主激励广告
- 面试题:MySQL的union all和union有什么区别、MySQL有哪几种join方式(阿里面试题)[通俗易懂]
- matlab遍历图像、字符串数组等基本操作
- 芭比Q了!新上架的游戏APP,咋分析?
猜你喜欢
leetcode刷题:栈与队列05(逆波兰表达式求值)
Past and present life of product modular design
PWN攻防世界cgpwn2
Uniapp uses Tencent map to select points without window monitoring to return users' location information. How to deal with it
新版Free手机、PC、平板、笔记本四端网站缩略展示图在线一键生成网站源码
NSI脚本的测试
2022安全员-A证考题及在线模拟考试
极客DIY开源方案分享——数字幅频均衡功率放大器设计(实用的嵌入式电子设计作品软硬件综合实践)
图片拼图微信小程序源码_支持多模板制作和流量主
MySQL数据库驱动(JDBC Driver)jar包下载
随机推荐
基于YOLOv5的口罩佩戴检测方法
Entering Ruxin Town, digital intelligence transformation connects "future community"
Niuke programming question -- must brush the string of 101 (brush the question efficiently, draw inferences from one instance)
2022年低压电工考试试题及答案
EURA eurui E1000 series inverter uses PID to realize the relevant parameter setting and wiring of constant pressure water supply function
Big factories are wolves, small factories are dogs?
MQ学习笔记
Keras machine translation practice
PMP与NPDP之间的区别是什么?
【mysql 07】GPG key retrieval failed: “Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022“
宅男壁纸大全微信小程序源码-带动态壁纸支持多种流量主
2022安全员-A证考题及在线模拟考试
EDA工具对芯片产业的重要性知识科普
PWN攻防世界cgpwn2
朋友圈社区程序源码分享
开环和闭环是什么意思?
leetcode刷题:栈与队列05(逆波兰表达式求值)
杰理之蓝牙耳机品控和生产技巧【篇】
Iframe parent-child page communication
php反射型xss,反射型XSS测试及修复