当前位置:网站首页>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:
边栏推荐
- 【opencv】train&test HOG+SVM
- js如何获取集合对象中某元素列表
- matlab遍历图像、字符串数组等基本操作
- [mysql] install mysql5.7
- 从20s优化到500ms,我用了这三招
- 【mysql 07】GPG key retrieval failed: “Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022“
- 同花顺股票开户选哪个券商好手机开户是安全么?
- Entering Ruxin Town, digital intelligence transformation connects "future community"
- Is it safe to open an account online? Can a novice open a stock trading account.
- How to create a pyramid with openmesh
猜你喜欢
极客DIY开源方案分享——数字幅频均衡功率放大器设计(实用的嵌入式电子设计作品软硬件综合实践)
Slf4j打印异常的堆栈信息
Principle of motion capture system
Common components of flask
图片拼图微信小程序源码_支持多模板制作和流量主
编程英语生词笔记本
多个张量与多个卷积核做卷积运算的输出结果
关联线探究,如何连接流程图的两个节点
Niuke programming question -- must brush the string of 101 (brush the question efficiently, draw inferences from one instance)
NSI脚本的测试
随机推荐
4. 对象映射 - Mapping.Mapstercover
安装mysql时出现:需要这两个包perl(Data::Dumper),perl(JSON)
PHP 读取ini或env类型配置
Halcon知识:三维重构的一个尝试
There are four ways to write switch, you know
Flume面试题
BPR(贝叶斯个性化排序)
[mysql] install mysql5.7
杰理之、产线装配环节【篇】
新版图解网络PDF即将发布
考虑关系的图卷积神经网络R-GCN的一些理解以及DGL官方代码的一些讲解
How can I know if I want to get the preferential link of stock account opening? Is it safe to open an account online?
burpsuite简单抓包教程[通俗易懂]
tensorflow 张量做卷积,输入量与卷积核维度的理解
杰理之关于长按开机检测抬起问题【篇】
基于LSTM模型实现新闻分类
游览器打开摄像头案例
PMP证书真的有用吗?
从20s优化到500ms,我用了这三招
leetcode刷题:栈与队列07(滑动窗口最大值)