问题标签 [pytest-bdd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

python - Pytest bdd 错误“scenario_wrapper() 缺少 1 个必需的位置参数:'request'”

我正在学习 pytest,但在添加 pytest-bdd(功能文件,步骤文件是我要运行的文件)之前尝试运行运行良好的测试时出错,这是我的代码:

它找到元素并检查它的值是否正确。我想知道为什么在添加步骤并制作功能文件后它不起作用。相同步骤文件中的其他测试就像以前一样工作。错误按摩:

我看了几个类似的问题,但对我来说不是可以理解的。如果有人知道问题可能出在哪里或一些链接将不胜感激!

0 投票
1 回答
482 浏览

python - 我如何在相同的场景中使用相同的步骤,但在 pytest-bdd 中使用不同的参数?

假设我有一个类似的场景:

我非常想重用“when”步骤,例如And I add <argument> to the input,但不想使用示例表,因为我希望在步骤定义/conftest 文件中动态生成固定装置。我目前正在使用@pytest.mark.parametrize这样的参数化场景大纲:

我希望能够以某种方式在具有不同参数的相同场景中重用相同的步骤定义,例如

而不必有两个步骤定义,例如

pytest -bdd 文档似乎表明这是可能的,但我无法完全理解如何在不使用示例表的情况下完成此操作。

通常可以重用为它们提供参数的步骤。这允许单一实现和多次使用,因此代码更少。还打开了在单个场景中两次使用相同步骤并使用不同参数的可能性![原文如此] (强调我自己的)

有没有人对我如何做到这一点有任何想法?

一如既往地感谢您的时间!

0 投票
1 回答
114 浏览

python - 如何更改 pytest-bdd 中下一步的变量?

我想将 x 从一个步骤更改为另一个步骤,而不添加另一个功能

输出:

想要的输出:

非常感谢,请帮忙

0 投票
0 回答
20 浏览

pytest - 使用 pytest-bdd 进行乘法输入测试

我正在寻找一种方法,如何在具有多个输入的函数中传递两个或多个输入。这是一个简单函数的示例。我希望这个工作pytest-bdd

我如何测试这个场景?

实际上,这个测试总是通过但不应该,因为 1 + 2 = 3,检查 1。

功能代码:

0 投票
0 回答
49 浏览

python - 有没有办法列出 pytest_bdd 的功能文件中描述的场景或功能?

我想列出 pytest_bdd 的功能文件中描述的所有场景和功能。我尝试了以下方法:

列出灯具,包括我的“给定,何时,然后”,但不包括功能/场景。

也试过这个:

在步骤定义文件中打印测试函数,仅此而已。

欢迎任何想法:)

0 投票
0 回答
46 浏览

python - Pytest-bdd 夹具运行 pytest 夹具两次

我有一个使用 API 的类:

我有conftest.py

我有 pytest-bdd 固定装置:

结果,当我运行 pytest 时,我看到api_client.make_request调用了两次。

是什么原因,我应该怎么做才能避免它并且只调用一次api_client.make_request

0 投票
1 回答
49 浏览

python - 如何使用 pytest-bdd 实现 pytest xfail 标记?

我正在使用 pytest bdd 自动化 api。我需要为 @pytest.mark.xfail我的步骤定义之一实现。但是在添加了这个装饰器之后,它并没有按预期工作。

示例 >

当上述断言失败时,我的测试用例仍然显示为失败。我应该在这里做什么?

0 投票
0 回答
34 浏览

python - pytest-bdd TypeError:“NoneType”类型的参数不可迭代

我很困惑。我正在尝试学习使用 pytest-bdd 和 gherkin,但我收到一个 TypeError 说 NoneType 不可迭代。我认为这意味着我试图从中获取值的 dict 不知何故成为了这里某处的 NoneType 对象,但我不知道何时、如何或为什么。发生了什么?如何修复此代码?(请假设此代码引用的程序按预期工作,因为它确实如此。)

这是我遇到很多次的错误(每个测试用例一次):

0 投票
0 回答
19 浏览

hook - pytest-bdd 钩子想在测试失败时将团队消息发送到特定频道

我有我的 pytest-bdd 钩子

我的愿望是运行名为“env_availability”的场景,当它无法将按摩发送到团队的一个频道时,对于其他场景,我有其他频道。我尝试了很多解决方案,唯一的想法是我得到的是代码,否则找不到解决方案如何解决这个问题:

如果我打印场景,我会得到结果:

这是我的场景`功能:环境可用性

0 投票
0 回答
29 浏览

python - 我如何在 PytestBDD selenium 框架的调试模式下运行

'' 我有使用 pytestBDD、Python39 和 Pycharm for IDE 的自动化框架。我在 Pycharm 终端中使用以下命令来执行测试场景:

"pytest -m "test55109" -q -s --site=TestUSsite --env=prod"

其中“test55109”:功能文件中的注释以运行该场景“TestUSsite::正在测试的应用程序

想知道,在我的代码中放置断点后,如何在调试模式下运行测试。

是否有任何命令可以直接通过 pycharm 终端运行它?

注意:无法通过 Pycharm Debug 选项运行,因为它运行所有场景而不将所需参数处理为“test55109”,site=TestUSsite,env=prod ''