pytest配置文件pytest.ini的具体使用

目录
  • 前言
  • pytest.ini的内容构成
  • 配置项markers
  • 配置项testpaths
  • 配置项addopts

前言

说到配置,大家可能想到的是不经常更改的内容,比如Django里的settings.py文件,或者我们做自动化的时候,把测试环境的域名和正式环境的域名放到一个配置文件里,所有的接口都从这个文件里读取。这样,如果有一天,我们的域名变了,我们只需要更改配置里的域名就可以了。pytest里也有几个配置文件。

pytest.ini:pytest的主配置文件,可以改变pytest的默认行为,有很多可配置的选项。
conftest.py:是本地的插件库,其中的hook函数和fixture将作用于该文件所在的目录以及所有子目录。
init.py:每个测试子目录都包含该文件时,那么在多个测试目录中可以出现同名测试文件。
tox.ini:它与pytest.ini类似,只不过是tox的配置文件,你可以把pytest的配置都写在tox.ini里,这样就不用同时使用tox.ini和pytest.ini两个文件

本文只谈pytest.ini的使用

pytest.ini的内容构成

先看一个简单的示例,这个只展示了配置文件中的三个配置项,更多配置项可以查看https://www.jb51.net/article/255567.htm

配置项markers

先谈markers,它的作用是做注册标记,防止拼写错误。比如把@pytest.mark.smoke拼成@pytest.mark.somke,默认情况下。这不会引起程序错误。pytest会以为这是你创建的另一个标记。为了避免拼写错误。可以在pytest.ini文件里注册标记

[pytest]
markers =
    smoke: Run the smoke test functions for tasks project
    get: Run the test functions that test tasks.get()
import pytest

def inc(x):
    return x + 1

@pytest.mark.smoke
def test_answer():
    assert inc(3) == 55

@pytest.mark.post
def test_answer1():
    assert inc(4) == 5

标记注册好后,可以通过pytest --markers来查看

如果我们在执行时,故意写错mark标签,如把smoke故意写错了,也没有报错,只是给我们一个警告,只需要我们在ini里注册下就不会有警告了

如果使用了–strict选项,遇到拼写错误的标记或未注册的标记就会报错。并且在pytest.ini里注册了标记,但是没有函数使用该标记,也会报错。

配置项testpaths

testpaths指示pytest去哪里访问。testpaths是一系列相对于根目录的路径,用于限定测试用例的搜索范围。只有在pytest未指定文件目录参数或测试用例标识符时,该选项才有作用

[pytest]
testpaths = test_001

配置项addopts

更改默认命令行选项

pytest用命令行运行时,有时候需要经常要用到某些参数,又不想重复输入,这时可以使用pytest.ini文件里的addopts设置

[pytest]
addopts=-vqs

编写的用例

from selenium import webdriver
 def testOpenUrl():
 try:
 driver = webdriver.Firefox() # 打开浏览器
 driver.get('http://www.baidu.com') # 访问百度
 title = driver.title # 获取百度首页的title
 assert title == '百度一下,你就知道' # 断言
 except AssertionError:
raise AssertionError('断言失败!')
 driver.quit()

-v:pytest -v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等

-s:pytest -s 说明:输入我们用例中的调式信息,比如print的打印信息等,我们在上面用例8行加上一句 print(driver.title),我们再运行一下我们的用例看看

-m:pytest -m ”标记“ 说明:执行特定的测试用例。修改下上面的用例代码

from selenium import webdriver
 import pytest
 @pytest.mark.run_this_testcase       #添加mark的标签
 def testOpenUrl():
 try:
 driver = webdriver.Firefox() # 打开浏览器
 driver.get('http://www.baidu.com') # 访问百度
 title = driver.title # 获取百度首页的title
print(driver.title)
assert title == '百度一下,你就知道' # 断言
except AssertionError:
raise AssertionError('断言失败!')
driver.quit()
def testBaidu():
driver = webdriver.Firefox() # 打开浏览器
driver.get('http://www.baidu.com') # 访问百度
title = driver.title # 获取百度首页的title
assert title == '百度一下,你就知道' # 断言

-q:pytest -q 说明:简化控制台的输出,可以看出输出信息和上面的结果都不一样, 下图中有两个…点代替了pass结果

-k:pytest -k “关键字” 说明:执行用例包含“关键字”的用例

–tb=style:屏蔽测试用例执行输出的回溯信息,可以简化用例失败时的输出信息。style可以是 on,line,short,具体区别请自行体验。如使用pytest --tb=no

更多pytest参数可以参考文章
https://www.jb51.net/article/164071.htm
https://www.jb51.net/article/164074.htm

参考链接:

https://www.jb51.net/article/255567.htm

到此这篇关于pytest配置文件pytest.ini的具体使用的文章就介绍到这了,更多相关pytest配置文件pytest.ini内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 全网非常详细的pytest配置文件

    目录 更改默认命令行选项 注册标记来防止拼写错误 指定pytest的最低版本号 指定pytest忽略某些目录 指定测试目录 更改测试搜索的规则 python_classes python_files python_functions 禁用XPATH 说到配置,大家可能想到的是不经常更改的内容,比如Django里的settings.py文件,或者我们做自动化的时候,把测试环境的域名和正式环境的域名放到一个配置文件里,所有的接口都从这个文件里读取.这样,如果有一天,我们的域名变了,我们只需要更改配置

  • pytest中配置文件pytest.ini使用

    目录 一.pytest.ini说明 二.pytest.ini设置 1.addopts–设置自定义执行参数 2. testpaths–设置执行路径 3. markers–标记分组参数 4. 修改匹配规则 一.pytest.ini说明 pytest.ini是pytest的全局配置文件,一般放在项目的根目录下 固定的配置文件(pytest.ini),不可修改文件名 可以改变pytest的运行方式.设置配置信息.读取后按照配置的内容去运行 二.pytest.ini设置 1.addopts–设置自定义执行

  • pytest配置文件pytest.ini的详细使用

    前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行 非test文件 pytest里面有些文件是非test文件 pytest.ini:pytest的主配置文件,可以改变pytest的默认行为 conftest.py:测试用例的一些fixture配置 _init_.py:识别该文件夹为python的package包 查看pytest.ini的配置选项 cmd执行 pytest --help 找到这部分内容 [pyte

  • pytest配置文件pytest.ini的具体使用

    目录 前言 pytest.ini的内容构成 配置项markers 配置项testpaths 配置项addopts 前言 说到配置,大家可能想到的是不经常更改的内容,比如Django里的settings.py文件,或者我们做自动化的时候,把测试环境的域名和正式环境的域名放到一个配置文件里,所有的接口都从这个文件里读取.这样,如果有一天,我们的域名变了,我们只需要更改配置里的域名就可以了.pytest里也有几个配置文件. pytest.ini:pytest的主配置文件,可以改变pytest的默认行为

  • Zend Framework教程之配置文件application.ini解析

    本文分析了Zend Framework配置文件application.ini用法.分享给大家供大家参考,具体如下: 最方便,常用的配置方式使用配置文件.配置文件的具体的相关设置选项如下: php.ini的相关的配置选项,具体格式如下: phpSettings.配置选项,例如 phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 includePath相关配置 includePaths.library = APP

  • 修改Apache配置指定php配置文件php.ini的位置方法

    一般Apache安装php后,php配置文件默认加载位置在php/lib/文件夹下,如果该文件夹下没有php.ini文件则apache就会找不到php的配置文件,这时有两种方法, 第一种方法:就是复制一个相同版本的php的配置文件到该默认加载文件夹下,那么此时该配置文件中的配置就会被应用. 第二种方法:就是指定一个现存的php.ini位置.具体方法如下: (在httpd.conf文件最后一行添加PHPIniDir /usr/local/lib/php.ini ) 如下图: 修改后Apache配置

  • Python读取配置文件(config.ini)以及写入配置文件

    一.读取配置文件 我的目录如下,在config下有一个config.ini配置文件 配置文件内容 # 定义config分组 [config] platformName=Android appPackage=com.romwe appActivity=com.romwe.SplashActivity # 定义cmd分组 [cmd] viewPhone=adb devices startServer=adb start-server stopServer=adb kill-server instal

  • python读取配置文件方式(ini、yaml、xml)

    零.前言 python代码中配置文件是必不可少的内容.常见的配置文件格式有很多中:ini.yaml.xml.properties.txt.py等. 一.ini文件 1.1 ini文件的格式 ; 注释内容 [url] ; section名称 baidu = https://www.jb51.net port = 80 [email] sender = 'xxx@qq.com' 注意section的名称不可以重复,注释用分号开头. 1.2 读取 configparser python自带的confi

  • pytest使用@pytest.mark.parametrize()实现参数化的示例代码

    目录 1.方法详情: 2.使用方法 2.1.一个列表中一个参数多个值 2.2.多参数多值 2.3.多个参数混合使用 2.4.传入字典数据 1.方法详情: parametrize(argnames,argvalues,indirect=False,ids=None,scope=None)常用参数:argnames:参数名argvalues:参数值(可以为list和tuple,或者字典列表,字典元组等),参数值有N个,用例就会执行N次. 2.使用方法 2.1.一个列表中一个参数多个值 示例代码: d

  • MySQL配置文件my.ini全过程

    目录 MySQL配置文件my.ini my.ini文件位置 配置参数 MySQL初始化配置文件my.ini MySQL配置文件my.ini my.ini文件位置 1.在我们的电脑上面找到mysql的安装路径,点击进去之后可以看到my.ini在mysql安装路径的根目录 2.另外一种情况是我们在mysql安装目录找不到,看到了my-default.ini文件或者也没有,这时my.ini在“C:\ProgramData\MySQL\MySQL Server x.x”目录下面,我们首先需要找到Prog

随机推荐