首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pytest -k选项不会限制测试函数的运行

Pytest是一个功能强大的Python测试框架,它提供了丰富的功能和灵活的配置选项,可以帮助开发人员编写高效、可维护的测试代码。

在Pytest中,-k选项用于指定一个表达式,只运行名称匹配该表达式的测试函数。然而,有时候使用-k选项可能不会限制测试函数的运行,这可能是由于以下几个原因:

  1. 表达式不正确:如果表达式不正确,可能无法正确匹配测试函数的名称。在使用-k选项时,应确保表达式正确并与要运行的测试函数名称匹配。
  2. 测试函数名称不符合预期:有时候测试函数的名称可能不符合预期,导致无法正确匹配。在这种情况下,可以尝试使用正则表达式来匹配测试函数的名称。
  3. 测试函数不在当前目录下:如果测试函数不在当前目录下,使用-k选项可能无法正确找到并运行测试函数。在这种情况下,可以使用相对路径或绝对路径来指定测试函数的位置。

总结起来,如果Pytest的-k选项不限制测试函数的运行,可能是由于表达式不正确、测试函数名称不符合预期或测试函数不在当前目录下。在使用-k选项时,应确保表达式正确、测试函数名称符合预期,并且测试函数在正确的位置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Pytest+Allure+Jenkins持续集成实战

2.2:-k -k选项允许我们使用表达式指定希望执行测试用例。 2.3:-m -m(marker)用于标记测试并分组以便快速选择并执行测试用例。...如果某个测试函数被断言失败或者触发了外部异常,则该测试用例运行就会终止,pytest将其标记为失败后会继续下一个测试用例。通常来说这是我们期望运行模式。...三:Pytest精髓Fixture fixture是在测试函数运行前后,又pytest执行外壳函数。...@pytest.fixture()装饰器用于声明函数是一个fixture。如果测试函数参数列表中包含fixture名,那么Pytest会检测到,并在测试函数运行之前执行该fixture。...执行pip(3) install pytest-xdist安装此插件。 4.3 pytest-timeout 默认情况下,pytest测试执行是没有时间限制

46120

Pytest(五)标记函数

),我们只想执行指定测试函数。...pytest test_one.py::test_func1 执行结果: 第二种,使用模糊匹配,使用 -k 选项标识。...pytest -k func1 test_noe.py 结果如下 以上两种方法,第一种一次只能指定一个测试函数,当要进行批量测试时无能为力;第二种方法可以批量操作,但需要所有测试函数名包含相同模式...= 1 测试时使用 -m 选择标记测试函数pytest -m finished test_noe.py 执行结果 用 mark,我们可以给每个函数打上不同标记,测试时指定就可以允许所有被标记函数...一个函数可以打多个标记;多个函数也可以打相同标记。 运行测试时使用 -m 选项可以加上逻辑,如: pytest -m "finished and commit"

56540

Pytest中fixture作用范围(六)

下面依据各个案例来说明该参数实际应用。 先来看函数级别,也就是说函数级别中,每个测试函数只需要执行一次,配置代码在测试用例运行前执行,销毁代码是在测试用例运行之后执行。...('开始执行') yield print('结束执行') def test_login_001(api): assert 1==1 该fixture仅仅是函数级别的应用,不会应用于其他方面...TEARDOWN F api 最后一个是会话级别的,会话级别的fixture每次会话只需要运行一次,一次pytest会话中所有测试函数,方法都可以共享该fixture,见案例代码: #!...在前面使用fixture时候说到了autouse选项,也应该看到,如果不使用该选项,每次共享fixture都需要指定,但是使用了它后就不需要指定了,那么标准说法应该是:依据选项autouse=True...,使作用域内测试函数都执行该fixture,这与那些需要多次执行,但不依赖任何状态或者外部数据代码配合比较好。

1.4K21

猿创征文|Python基础——Visual Studio版本——pytest

版本查看命令 pip show pytest 注意点 测试文件以test_开头(以_test结尾也可以) 测试类以Test开头,并且不能带有 init 方法 测试函数以test_开头 断言使用基本...第八行结果与预期结果不符,这就代表测试用例未通过。 如果无法使用,请更换命令【python -m pytest 类名.py】,这里不限制test_开头或_test结尾。...pytest.main() pytest.main()会自动读取当前目录下所有test开头.py文件,运行test方法或者类。...pytest参数,例如:pytest -sv test_demo.py -x 用例一旦失败,就立刻停止执行 --maxfile=num 用例达到多少停止执行 -m 标记用例 -k 执行包含某个关键字测试用例...-v 打印详细日志 -s 打印输出日志 和v连用 --lf 只重新运行失败用例 --ff 先运行失败用例再运行正常用例 套件执行顺序 装饰器 skip  : 跳过这个用例  reason:

53930

pytest框架介绍(二)

fixture执行逻辑 fixture 函数会在测试函数之前运行,但如果 fixture 函数包含 yield,那么系统会在 yield 处停止,转而运行测试函数,等测试函数执行完毕后再回到 fixture...无论测试过程中发生了说明,yield之后代码都会被执行 使用--setup-show回溯执行顺序 直接运行测试,则不会看到fisture执行过程。...如果希望看到测试过程中执行是什么,以及执行先后顺序。pytest 提供 --setup-show 选项可以实现这个功能。...” 函数级别的 fixture 每个测试函数只需要运行一次。...我们可以通过制定 autouse=True选项,使作用域内测试函数都自动运行 fixture fixture_params参数 @pytest.fixture(params=None) ,参数params

84920

Pytest 高效测试 Python 代码

选项从命令行中运行这些测试。...测试过滤 随着测试套件增长,可能会发现我们只想在一个功能上运行几个测试,为此, pytest提供了一些方法。 按名字过滤。可以将pytest限制为只运行完全限定名称与特定表达式匹配测试。...给pytest命令加上--strict-markers选项可以确保在pytest配置中注册测试中所有标记都。只要我们有任何未注册标记,它都将阻止我们运行测试。...,不加这个参数的话,控制台是不会显示print内容 -k参数 使用该参数可以指定运行满足要求用例。...用法如下: pytest -k "类名" pytest -k "方法名" pytest -k "类名 and not 方法名" 注意: -k参数后面跟引号只能用双引号"",不能用单引号'',否则不会识别到用例

29820

软件测试测试开发全日制|Pytest测试用例调度与运行

测试用例收集在 Pytest 中,测试用例是通过函数来表示。为了进行测试,Pytest 需要收集这些测试函数。...默认情况下,Pytest 会在当前目录及其子目录中查找文件,找到所有以 test_ 开头或以_test 结尾文件,并收集其中测试函数。...一种常见方式是使用 -k 参数,并提供一个匹配模式。例如:pytest -k "test_subtraction"这将只运行名称中包含 test_subtraction 测试用例。...运行顺序Pytest 默认是根据测试文件和测试函数字母顺序来执行测试用例。...如果需要改变执行顺序,可以使用 pytest-ordering 插件,通过 @pytest.mark.order(n) 标记测试函数顺序。总结Pytest 提供了灵活而强大测试用例调度与运行机制。

14610

聊一聊,Python自动化测试框架

- line 每个错误一行 # 运行指定 marker 测试 pytest -m MARKEXPR # 运行匹配测试 py.test -k stringexpr # 只收集并显示可用测试用例...1、执行单个模块中全部用例: py.test test_demo.py 2、执行指定路径下全部用例: py.test somepath 3、执行字符串表达式中用例: py.test -k stringexpr...4、运行指定模块中某个用例,如运行 test_demo.py 模块中 test_func 测试函数: pytest test_demo.py::test_func 5、运行某个类下某个用例,...在编写测试函数时候,可以将此函数名称做为传入参数,pytest 将会以依赖注入方式,将该函数返回值作为测试函数传入参数。...py.test 框架会在它测试项目中寻找 conftest.py 文件,然后在这个文件中寻找针对整个目录测试选项,比如是否检测并运行 doctest 以及应该使用哪种模式检测测试文件和函数。

3.8K40

Python测试框架之pytest详解

在单测文件中,测试类以Test开头,并且不能带有 init 方法(注意:定义class时,需要以T开头,不然pytest不会运行该class) 在单测类中,可以包含一个或多个test_开头函数...1.4 Pytest运行方式 # file_name: test_abc.py import pytest # 引入pytest包 def test_a(): # test开头测试函数...如何获取帮助信息 查看 pytest 版本 pytest --version 显示可用内置函数参数 pytest --fixtures 通过命令行查看帮助信息及配置文件选项 pytest --help...1.10 显示print内容 在运行测试脚本时,为了调试或打印一些内容,我们会在代码中加一些print内容,但是在运行pytest时,这些内容不会显示出来。如果带上-s,就可以显示了。...2.存在于测试类内部 代码示例: 函数级别setup()/teardown() 运行于测试方法始末,即:运行一次测试函数运行一次setup和teardown import pytest

2.2K20

pytest文档69-Hook函数之参数化pytest_generate_tests

前言 pytest 实现参数化有三种方式 pytest.fixture() 使用 fixture 传 params 参数实现参数化 @ pytest.mark.parametrize 允许在测试函数或类中定义多组参数...pytest_generate_tests pytest_generate_tests 在测试用例参数化收集前调用此钩子函数,根据测试配置或定义测试函数类或模块中指定参数值生成测试用例, 可以使用此钩子实现自定义参数化方案或扩展...为此,可以使用pytest_generate_tests在收集测试函数时调用钩子。...例如,假设我们要运行一个测试,并接受要通过新 pytest 命令行选项设置字符串输入。...assert stringinput.isalpha() 现在,我们添加一个conftest.py文件,其中包含命令行选项测试函数参数化: # content of conftest.py

2.4K40

使用IDEA写Python之pytest环境搭建及第一个程序编写

IDEA下python插件安装 点击File->Settings...->Plugins,点击marketplace选项卡,在里面搜索python,如下图所示: ? 点击install,重启即可。...三、pytest实践 pytest是一个非常成熟全功能Python测试框架,主要特点有以下几点: 简单灵活,容易上手,文档丰富; 支持参数化,可以细粒度地控制要测试测试用例; 能够支持简单单元测试和复杂功能测试...12 注意:测试函数必须以test_+函数名命名,否则不执行 4、执行测试 4.1、命令行形式执行 定位start.py同级目录下,输入如下命令,可执行测试函数 pytest start.py 执行成功...调试,为了方便运行,我们可以使用pytest提供pytest.main()函数运行我们测试脚本或者例子。...说明:pytest运行当前目录及子目录下所有以 test_*.py 和 *_test.py 命名文件。文件匹配方式遵循 Standard test discovery rules。

1.2K40

Playwright 入门教程

运行样例测试默认情况下,测试运行在 chromium 上,可通过 CLI 选项进行配置,测试以 Headless 模式运行。测试结果和测试日志被展示在终端中。venv/bin/pytest3....运行测试你可以运行单个测试、一组测试或全部测试。测试可以运行在一种或多种浏览器上。默认情况下,测试以 headless 方式运行,这意味着在运行测试时,不会打开浏览器窗口,可以在终端中看到结果。.../- 使用函数名运行测试pytest -k "test_add_a_todo_item"- 以有头(headed)模式运行测试pytest --headed test_login.py- 在指定浏览器上运行测试...有关 pytest 选项常用信息,请参考 Running Tests。7.5....这有一个限制,即只能指定一个浏览器,并且在指定多个浏览器时不会生成多个浏览器矩阵。

60220

Python 自动化操作 Excel

,可以使用-k模糊匹配 pytest -k example 复制代码 通过pytest.mark.skip()或者pytest.makr.skipif()条件表达式,跳过指定测试用例 import pytest...,pytest会在执行测试函数前(或者执行后)加载运行这些固件,常见应用场景就有数据库连接和关闭(设备连接和关闭) 简单使用 import pytest @pytest.fixture() def...,会首先检测运行函数参数,搜索与参数同名fixture,一旦pytest找到,就会运行这些固件,获取这些固件返回值(如果有),并将这些返回值作为参数传递给测试函数; 预处理和后处理 接下来进一步验证关于官方说法...,pytest执行测试函数前会寻找同名固件加载运行; connect_db固件中有yield,这里pytest默认会判断yield关键词之前代码属于预处理,会在测试前执行,yield之后代码则是属于后处理...,不需要模块中函数重复执行)更加具体例子就是数据库连接,这一连接操作可能是耗时,我只需要在这一模块测试函数运行一次即可,不需要每次都运行

37220

Pytest(16)随机执行测试用例pytest-random-order

pytest默认运行用例顺序是按模块和用例命名 ASCII 编码顺序执行,这就意味着每次运行用例顺序都是一样。...有很多方法可以做到这一点,我最喜欢一种方法是addopts = --random-order在pytest选项(通常是[pytest]或[tool:pytest]部分)下添加特定 # pytest.ini...: class 测试将在一个类中进行混洗,而各类将被混洗,但是来自一个类测试将永远不会在其他类或模块之间运行来自其他类测试。...parent 如果使用是不属于任何模块自定义测试项,则可以使用此项将测试项重新排序限制在它们所属父级中。对于正常测试函数,父级是声明它们模块。...通过传递,-p no:random_order您将阻止插件注册,因此其钩子将不会被注册,并且命令行选项不会 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166324

71240

pytest文档12-skip跳过用例

前言 pytest.mark.skip可以标记无法在某些平台上运行测试功能,或者您希望失败测试功能 skip意味着只有在满足某些条件时才希望测试通过,否则pytest应该跳过运行测试。...您可以使用-r选项查看与“short”字母对应详细信息显示在测试进度中 pytest -rxXs # show extra info on xfailed, xpassed, and skipped...tests 有关-r选项更多详细信息,请运行pytest -h skip 跳过测试函数最简单方法是使用跳过装饰器标记它,可以传递一个可选原因 @pytest.mark.skip(reason="no...这是标记测试示例在Python3.6之前解释器上运行时要跳过函数 import sys @pytest.mark.skipif(sys.version_info < (3,6), reason="...<em>运行</em><em>的</em>代码。

1.6K30

python执行测试用例_平台测试用例

pytest默认运行用例顺序是按模块和用例命名 ASCII 编码顺序执行,这就意味着每次运行用例顺序都是一样。...有很多方法可以做到这一点,我最喜欢一种方法是addopts = --random-order在pytest选项(通常是[pytest]或[tool:pytest]部分)下添加特定 # pytest.ini...: class 测试将在一个类中进行混洗,而各类将被混洗,但是来自一个类测试将永远不会在其他类或模块之间运行来自其他类测试。...parent 如果使用是不属于任何模块自定义测试项,则可以使用此项将测试项重新排序限制在它们所属父级中。对于正常测试函数,父级是声明它们模块。...通过传递,-p no:random_order您将阻止插件注册,因此其钩子将不会被注册,并且命令行选项不会 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/165224

2K30

Pytest(九) pytest Fixture(二)

Pytest(六)跳过测试 Pytest(七) pytest之参数化 Pytest(八) pytest Fixture(一) ---- 作用域 固件作用是为了抽离出重复工作和方便复用,为了更精细化控制固件...(比如只想对数据库访问测试脚本使用自动连接关闭固件),pytest 使用作用域来进行指定固件使用范围。...在定义固件时,通过 scope 参数声明作用域,可选项有: function: 函数级,每个测试函数都会执行一次固件; class: 类级别,每个测试类执行一次,所有方法都可以使用; module: 模块级...): pass 执行结果如下,可以清楚看到各固件作用域和执行顺序: 对于类使用作用域,需要使用 pytest.mark.usefixtures (对函数和方法也适用): @pytest.mark.usefixtures...下面是两个自动计时固件,一个用于统计每个函数运行时间(function 作用域),一个用于计算测试总耗时(session 作用域) date = '%Y-%m-%d %H:%M:%S' @pytest.fixture

63530

python执行测试用例_java随机函数random使用方法

pytest默认运行用例顺序是按模块和用例命名 ASCII 编码顺序执行,这就意味着每次运行用例顺序都是一样。...有很多方法可以做到这一点,我最喜欢一种方法是addopts = --random-order在pytest选项(通常是[pytest]或[tool:pytest]部分)下添加特定 # pytest.ini...: class 测试将在一个类中进行混洗,而各类将被混洗,但是来自一个类测试将永远不会在其他类或模块之间运行来自其他类测试。...parent 如果使用是不属于任何模块自定义测试项,则可以使用此项将测试项重新排序限制在它们所属父级中。对于正常测试函数,父级是声明它们模块。...通过传递,-p no:random_order您将阻止插件注册,因此其钩子将不会被注册,并且命令行选项不会 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/165140

80240
领券