pytest权威教程24-pytest导入机制及系统路径(代码片段)

superhin superhin     2023-05-06     261

关键词:

返回: Pytest权威教程

Pytest导入机制和sys.path/PYTHONPATH

包中的测试模块及conftest.py文件

文件和目录布局:

root/
|- foo/
  - __init__.py
  - conftest.py
  - bar/
     - __init__.py
     - tests/
        - __init__.py
        - test_foo.py

执行时:

pytest root/

pytest会发现foo/bar/tests/test_foo.py并意识到它是一个包的一部分,因为__init__.py在同一个文件夹中有一个文件。然后它将向上搜索,直到它找到仍包含__init__.py文件的最后一个文件夹,以便找到包(在本例中foo/)。要加载模块,它将插入root/到前面sys.path(如果不存在),以便test_foo.py作为*模块*加载foo.bar.tests.test_foo`。

相同的逻辑适用于该conftest.py文件:它将作为foo.conftest模块导入。

当测试存在于包中以避免出现问题并允许测试模块具有重复的名称时,保留完整的包名称非常重要。在:Python测试发现的约定中也详细讨论了这一点。

独立测试模块及conftest.py文件

考虑这个文件和目录布局:

root/
|- foo/
  - conftest.py
  - bar/
     - tests/
        - test_foo.py

执行时:

pytest root/

pytest会发现foo/bar/tests/test_foo.py并意识到它不是包的一部分,因为__init__.py同一个文件夹中没有文件。然后它将添加root/foo/bar/tests到sys.path以test_foo.py作为模块导入test_foo。conftest.py通过添加root/foo以sys.path将其导入为文件,对文件执行相同操作conftest。

因此,此布局不能包含具有相同名称的测试模块,因为它们都将导入全局导入命名空间。
在:Python测试发现的约定中也详细讨论了这一点。

调用通过python -m pytest调用pytest

使用python-m pytest [ ... ]而不是pytest [ ... ]运行pytest,前一个调用将添加当前目录,除此之外,两种调用方式相同。另请参阅:通过python -m pytest调用pytest。

24-pytest-allure命令行参数

目录查看帮助文档generate命令行参数open命令行参数serve命令行参数打开报告两种方式查看帮助文档allure --help格式:allure[options][command][commandoptions]Usage:allure[options][command][commandoptions]Options:--helpPrintcommandlinehelp.帮助 查看详情

24-pytest-allure命令行参数(代码片段)

目录查看帮助文档generate命令行参数open命令行参数serve命令行参数打开报告两种方式查看帮助文档allure --help格式:allure[options][command][commandoptions]Usage:allure[options][command][commandoptions]Options:--helpPrintcommandlinehelp.帮助文档-q,--quietS... 查看详情

pytest+yaml框架-7.用例分层机制(代码片段)

...aml文件,测试用例去调用导入API。pip安装插件pipinstallpytest-yaml-yoyo用例分层功能在v1.0.5版本上实现用例分层我这里只分2层: 查看详情

pytest基础使用教程

参考技术APytest是一个易用、强大、灵活的功能测试框架,并且兼容unittest和nose的测试用例运行方法在当前文件所在目录,打开命令行,运行:或者在脚本中,导入pytest,使用pytest.main([...])运行:mark主要用来标记用例,通过不同的标记实现... 查看详情

使用 pytest 正确导入

】使用pytest正确导入【英文标题】:Importingcorrectlywithpytest【发布时间】:2014-11-0717:55:24【问题描述】:我刚刚准备好在Python2.6中使用pytest。到目前为止,除了处理“import”语句外,它运行良好:我似乎无法让pytest以与我的程序... 查看详情

elasticsearch教程elasticsearch查询语法elasticsearch权威指南深入理解elasticsearch

课程大纲第1节结构化搜索_IT技术论坛案例背景介绍9分钟第2节结构化搜索_在案例中实战使用termfilter来搜索数据20分钟第3节结构化搜索_filter执行原理深度剖析(bitset机制与caching机制)18分钟第4节结构化搜索_在案例中实战基于bool组... 查看详情

pytest之安装,导入相关依赖库

参考技术Apytest有很多插件库,在我们使用的时候可以去官网或者网上查一下,不同的插件都满足什么功能使用。安装pytest:pipinstall-UpytestU表示升级安装插件sugar:pipinstallsugar安装插件rerunfailures:pipinstallpytest-rerunfailures安装插件pytest-... 查看详情

pytest模块导入ImportError:没有模块命名

】pytest模块导入ImportError:没有模块命名【英文标题】:pytestmoduleimportImportError:Nomodulenamed【发布时间】:2018-07-1913:36:59【问题描述】:这个问题已经被问过DOZENS次了,但是我遇到的每一个问题都没有适合我的解决方案。我正在使... 查看详情

pytest 无法导入模块,而 python 可以

】pytest无法导入模块,而python可以【英文标题】:pytestcannotimportmodulewhilepythoncan【发布时间】:2017-06-0413:06:14【问题描述】:我正在使用Python开发一个包。我使用虚拟环境。我在我的virtualenv中的.pth路径中设置了模块根目录的路... 查看详情

pytest2021-pytest使用教程-课程知识点目录(代码片段)

P404-fixture的基本使用@pytest.fixture:用此函数为其它测试函数的同名形参赋值Fixture函数一般不用test_开头 查看详情

在 AWS Codepipeline 中使用 pytest 时导入文件不匹配

】在AWSCodepipeline中使用pytest时导入文件不匹配【英文标题】:ImportfilemismatchwhenusingpytestinAWSCodepipeline【发布时间】:2022-01-1218:25:30【问题描述】:运行命令coveragerun-mpytest-rap--junitxmlcoverage.xml后,所有单元和集成测试都在我的本地... 查看详情

一篇教程精通pytest(代码片段)

目录黑盒与白盒什么是自动化测试pytest特点pytest命名规则pytest的运行方式main函数方式:命令行方式-n并行运行nodeid的方式:pytest.ini配置文件运行方式失败用例重跑pytest调整用例执行顺序跳过执行测试用例生成测试报告黑... 查看详情

最全的pytest+allure使用教程

地址:https://mp.weixin.qq.com/s/YO6XmvK2wyMlZwt0i5zGXw 查看详情

pytest相关教程

参考文章地址:https://blog.csdn.net/weixin_38708177/article/details/88234582?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_r 查看详情

elasticsearch:权威指南(官方教程)

《Elasticsearch权威指南》中文版序言前言基础入门深入搜索处理人类语言聚合地理位置数据建模管理、监控和部署   查看详情

pytest官方教程-20-编写钩子(hook)方法

参考技术Apytest为任何给定的钩子(hook)规范调用已注册插件的钩子(hook)方法。让我们看一下钩子(hook)的典型钩子(hook)方法,pytest在收集完所有测试项目后调用。pytest_collection_modifyitems(session,config,items)当我们pytest_collection_modifyitems在... 查看详情

自动化测试框架pytest教程(代码片段)

快速入门准备安装推荐安装anaconda,默认带pytest#pip3installpytest...$pytest-h#查看帮助...参考资料:https://pytest.orghttps://pypi.org/project/pytest第一个实例(通过)deftest_passing():assert(1,2,3)==(1,2,3)函数test_passing()为测试函数,因为它以test_开头... 查看详情

ImportError:导入测试模块失败:

...到了测试的地步,但我在运行时仍然出现错误pythonmanage.pytest这是我的错误:(restapi)chrismaltez@Chriss-MacBook-Pro:~/Desktop/pycharmpr 查看详情