Pytest权威教程25-配置

目录

  • 配置

    • 命令行选项和配置文件设置
    • 初始化:确定ROOTDIR和INIFILE
    • 寻找rootdir
    • 如何更改命令行选项默认值
    • 内置的配置文件选项

返回: Pytest权威教程

配置

命令行选项和配置文件设置

你可以使用常规帮助选项获取有关INI选项配置文件中命令行选项和值的帮助:

pytest -h   # prints options _and_ config file settings

这将显示已安装插件注册的命令行和配置文件设置。

初始化:确定ROOTDIR和INIFILE

pytest根据rootdir命令行参数(指定的测试文件,路径)以及ini-files的存在为每次测试运行确定一个。在启动过程中,确定的文件rootdir和ini文件将作为pytest标头的一部分打印。

以下是摘要的pytest用途rootdir:

  • 在收集期间构造nodeid;每个测试都分配有一个唯一的nodeid,该id植根于,rootdir并考虑了完整路径,类名,函数名和参数化(如果有)。
  • 插件将其用作存储项目/测试运行特定信息的稳定位置;例如,内部缓存插件在其中创建一个.pytest_cache子目录rootdir来存储其交叉测试运行状态。

需要特别强调的是,rootdir它不用于修改sys.path/PYTHONPATH或影响模块的导入方式。有关更多详细信息,请参见:Pytest导入机制和系统路径。

--rootdir=path命令行选项可用于强制使用特定目录。可以配合使用在pytest.ini文件中的addopts项中添加该参数来包含特定目录到环境变量中。

寻找rootdir

这是从中找到rootdir的算法args:

  • 确定指定的公共祖先目录,这些目录args被识别为文件系统中存在的路径。如果找不到此类路径,则将公共祖先目录设置为当前工作目录。
  • 寻找pytest.ini,tox.ini并setup.cfg在父目录和文件向上。如果匹配,它将成为ini文件,并且其目录将成为rootdir。
  • 如果未找到ini文件,请setup.py从公共祖先目录向上查找以确定rootdir。
  • 如果没有setup.py被发现,寻找pytest.ini,tox.ini并 setup.cfg在每个指定args向上。如果匹配,它将成为ini文件,并且其目录将成为rootdir。
  • 如果找不到ini文件,则使用已经确定的公共祖先作为根目录。这允许在不属于包且没有任何特定ini文件配置的结构中使用pytest。
  • 如果没有args给出,pytest会在当前工作目录下收集测试,并从那里开始确定rootdir。

注意:自定义pytest plugin命令行参数可能包含路径,如中所示 。然后是强制性的,否则pytest使用test.log文件夹确定rootdir(另请参见问题1435)。也可以使用点来引用当前工作目录。pytest --log-output ../../test.log argsargs.
请注意,现有的pytest.ini文件将始终被认为是匹配的,而tox.ini且setup.cfg只会如果包含匹配 [pytest]或[tool:pytest]部分,分别。多个ini-file候选文件中的选项永远不会合并-第一个获胜(pytest.ini即使不包含任何[pytest]部分,也总是成功)。

该config对象随后将具有以下属性:

  • config.rootdir:确定的根目录,保证存在。
  • config.inifile:确定的ini文件可能是None。
    rootdir用作构建测试地址(“ nodeids”)的参考目录,也可以由插件用于存储每次测试运行信息。

例如:

pytest path/to/testdir path/other/

将确定共同祖先path,然后检查ini文件,如下所示:

# first look for pytest.ini files
path/pytest.ini
path/tox.ini    # must also contain [pytest] section to match
path/setup.cfg  # must also contain [tool:pytest] section to match
pytest.ini
... # all the way down to the root

# now look for setup.py
path/setup.py
setup.py
... # all the way down to the root

如何更改命令行选项默认值

每次使用时,键入相同系列的命令行选项可能很麻烦pytest。例如,如果您始终希望查看有关跳过的测试和xfailed测试的详细信息,以及具有简短的“点”进度输出,则可以将其写入配置文件:

# content of pytest.ini or tox.ini
[pytest]
addopts = -ra -q

# content of setup.cfg
[tool:pytest]
addopts = -ra -q

另外,您可以设置PYTEST_ADDOPTS环境变量以在使用环境时添加命令行选项:

export PYTEST_ADDOPTS="-v"

这是在addopts或环境变量存在的情况下构建命令行的方式:

<pytest.ini:addopts> $PYTEST_ADDOPTS <extra command-line arguments>

因此,如果用户在命令行中执行:

pytest -m slow

执行的实际命令行为:

pytest -ra -q -v -m slow

请注意,与其他命令行应用程序一样,在选项冲突的情况下,最后一个将获胜,因此上面的示例将显示冗长的输出,因为-voverwrites -q。

内置的配置文件选项

有关选项的完整列表,请参考参考文档。

原文地址:https://www.cnblogs.com/superhin/p/11741587.html

时间: 2024-07-30 19:23:36

Pytest权威教程25-配置的相关文章

Pytest权威教程24-Pytest导入机制及系统路径

目录 Pytest导入机制和sys.path/PYTHONPATH 包中的测试模块及conftest.py文件 独立测试模块及conftest.py文件 调用通过python -m pytest调用pytest 返回: Pytest权威教程 Pytest导入机制和sys.path/PYTHONPATH 包中的测试模块及conftest.py文件 文件和目录布局: root/ |- foo/ - __init__.py - conftest.py - bar/ - __init__.py - te

[Android Studio 权威教程]配置出“NB”的Android Studio

前几篇博客我们已经安装好了As,并且创建了我们的第一个HelloWrod ,这片blog我们继续配置出一个NB的Android Studio 假设你是一个才開始接触到AS或者想从Eclipse转型到AS的童鞋,那么请你持续关注我左边的专栏[Android Studio 权威教程],好的.開始我们的教程. 1.配置IDE主题 默认的主题是一个灰白色.看这特别的不好看.并且对于我们程序开发人员来讲每天要对着电脑好几个小时.特别的伤眼睛.我们来配置一个高大上的暗黑主题. 点击这个设置的小图标 这里Th

Hyper-V 2016 系列教程25 配置NFS 存储服务器

一般企业在虚拟化服务器上线后,会有一部分的物理服务器淘汰下来,而这些服务器有的性能虽然不是最好的,但是硬盘却是专业的RAID级别的,甚至还没有过厂家的保修期,所以如果能将这些资源充分利用起来,也能为企业成本的节省做点贡献,下面我们来介绍一下,可以将这些服务器配置成Windows Server或者Linux系统的软件存储服务器,可以做成iSCSI SAN存储器或者NFS存储器,可以用来存放一些备份或者监控视频等资料,如果旧服务器操作系统Windows Server 2008/2012的话也可以了,

[Android Studio 权威教程]离线配置SDK,创建第一个AS项目

前三篇bolg我给大家分享了怎么安装Android Studio,但是我们还没有使用AS创建一个Android 的项目,那么这篇blog我们开始离线配置SDK,并且创建一个Android项目 没有看如何安装Android Studio的童鞋,请先看这里,然后回来我们继续: [Android Studio 权威教程]Mac下安装Android Studio [Android Studio 权威教程]Linux下安装Android Studio [Android Studio 权威教程]Window

[Android Studio 权威教程]AS 中配置强大的版本号管理系统(Git、SVN、等)

在Eclipse中加入Git等版本号管理工具须要自己加入插件.并且个人认为不咋好用,在AS中已经给我们集成好了,我们仅仅须要配置一下就OK了.今天就和大家聊聊怎么配置以及使用的要点. 1. 安装Git/CVS 第一步首先你须要安装Git/CVS等版本号管理工具.这个请自行百度 2. 新建一个本地空仓库 新建一个仓库叫GitTest 仓库如今是空的什么都没有 找到路径,然后复制路径(这步非常重要) 3. 新建AS项目 项目创建完毕.这个时候我们能够看到AS提示我们配置仓库的提示,我们接下来配置一下

Nessus漏洞扫描教程之配置Nessus

Nessus漏洞扫描教程之配置Nessus 配置Nessus 当安装成功Nessus工具后.就可以使用该工具实施漏洞扫描.为了使用户更好的使用该工具,将介绍一下该工具的相关设置.如服务的启动.软件更新.用户管理等.本节将对Nessus服务配置进行简介. 启动Nessus服务 Nessus服务安装后.默认是自己主动启动的.假设用户重新启动系统,获取进行其他操作时.将Nessus服务关闭的话.则再次訪问必需要先启动该服务. 以下将分别介绍在不同操作系统中,启动Nessus服务的方法. 1.Windo

[Android Studio 权威教程]Linux下安装Android Studio

我从AS 0.5版本开始使用,也是AS的推行者,在ApkBus发布的第一篇Android Studio Perview 2 获得了50K的浏览,1800多条回复下载. 在我的[Android Studio 系列教程]中,我会从1.1稳定版AS的安装到1.3版本AS NDK集成和使用 都分享给大家,敬请关注 其他平台请转移到这里: [Android Studio 权威教程]Windows下安装Android Studio [ Android Studio 权威教程]Mac下安装Android St

[Android Studio 权威教程]打包、生成jks密钥、签名Apk、多渠道打包

上一篇我们讲了多渠道打包 其中我们用到了签名文件在eclipse时.keystore在Android Studio中就是.jks文件了,那么这个文件怎么生成呢?这篇文章是上一篇的补充篇. 生成jks签名文件 选择Build > Generate Signed APK- 选择项目app > Next 选择Create new- 选择签名文件的路径,这些信息和eclipse一样了,填完点击OK 选择Next 我们这里做测试选择qihu360和xiaomi打包release版,最后点击Finish

[Android Studio 权威教程]AS构建系统-Gradle

前几篇我们主要讲了AS的配置的一些东西,今天我们就开始认识一下Android Studio的[构建系统]-Gradle. Gradle是什么?Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具.[百度百科] 在AS中包含一个顶级构建文件和每个模块构建文件组成,如下图 我们这里就主要讲[顶级配置文件和模块配置文件以及sdk配置文件] 1.等级配置文件 2.模块配置文件 说明: minifyEnable false 是apk变小压缩ap