问题标签 [python-behave]

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 回答
212 浏览

bdd - 行为 - 应用程序之间的共同特征,避免重复

我有许多要测试的应用程序,它们具有大量重叠的功能集。这是我可能遇到的场景的过度简化示例:

这是一个愚蠢的例子,但假设我真的有很多具有不同命中/未命中条件的玩家,我只想运行定名称的场景?说,我只想为Alice. 在单个场景大纲中包含所有命中/未命中测试仍然有优势(因为毕竟它们都是密切相关的)。

一种方法是为每个名称复制测试并标记它们,例如:

这样我可以运行behave --tags @Alice,但是我为每个用户重复相同的场景,这是很多重复。有没有一种好方法可以将所有示例压缩到一个场景中 - 但只能选择性地运行其中一些示例?这里的正确方法是什么?

0 投票
5 回答
8446 浏览

python - 在 Python 行为测试框架中处理异常

我一直在考虑从鼻子切换到行为测试(摩卡/柴等已经宠坏了我)。到目前为止一切顺利,但我似乎无法找出任何测试异常的方法,除了:

用鼻子我可以用

我在行为中找不到类似的东西(不在源代码中,不在示例中,不在此处)。能够指定可能在场景大纲中抛出的异常肯定会很棒。

有人走过这条路吗?

0 投票
1 回答
3534 浏览

python - 使用 Splinter 发送密钥

我想使用 Splinter 测试一个自动完成框。我需要将“向下”和“输入”键发送到浏览器,但我在执行此操作时遇到了麻烦。

我目前正在找到一个输入框并成功在该框中输入“tes”

我接下来要做的是向浏览器发送一些键,特别是“向下”键(选择第一个自动完成建议),然后发送“输入”键来选择该自动完成元素。

我已经尝试了广泛的搜索,但无法弄清楚如何做到这一点。

我什至尝试了一些javascript

但不幸的是,这并没有做任何事情

我正在使用的软件包:

django 1.6 django-behave==0.1.2 分裂 0.6

当前配置是:
from splinter.browser import Browser from django.test.client import Client

0 投票
1 回答
356 浏览

python - django,wsgi_intercept 和行为

您好我正在尝试在我的 django python 应用程序中实现行为测试框架。但是不确定问题是什么,我一直被拒绝连接。

以下是 features/environment.py 的内容:

我试图弄清楚如何在运行行为脚本时引导我的 django 应用程序,以便测试我的网络应用程序。

0 投票
2 回答
1582 浏览

jenkins - 如何在 Jenkins 上运行 Behave 测试时获得彩色控制台输出

我在 Jenkins 上运行我的 Gherkin 测试(Behave with Python)。我想获得测试的彩色控制台输出(通过的步骤标记为绿色,失败的标记为黄色,跳过的标记为蓝色)以获得更好的可读性。好心提醒。TIA

0 投票
2 回答
1397 浏览

python-behave - Python 行为:如何检查当前步骤是否在“背景”上下文中

摘要:在 -w 模式下生成测试报告或测试运行转储时,我想抑制步骤的标准输出输出,这些步骤作为后台步骤运行。我可以控制通过环境变量产生的输出,但我无法检测何时设置它,这取决于步骤是否在后台。对我来说更好的是能够告诉行为不以编程方式在后台步骤执行中捕获/输出标准输出。

细节:

step 'foo' 在 stdout 上产生很多输出,当它是测试背景的一部分时,我想将其关闭。最好是在背景上使用@quiet 标记,我可以在其中将环境设置为在步骤执行时不健谈,但在行为中不支持背景标记。

在这里,我无法通过上下文或标签检测到我所在的位置:

如果我在后台或场景中,context._dir 不会提供给我。

=> 任何关于此的最佳实践?

我目前的方法是通过专用的给定步骤显式切换输出(例如“并且 api 输出是 [on|off] ”),但由于背景和测试步骤始终相同,我希望在幕后完成。

0 投票
1 回答
6741 浏览

python - 从 python 而不是命令行运行 python 行为

有什么方法可以从 python 内部而不是通过命令行运行 python 行为?

默认用法:在具有功能/步骤的基本文件夹中运行行为命令

期望的用法:调用在指定文件夹中执行行为测试的函数(或具有一定的导入)

0 投票
1 回答
579 浏览

python - TDD 实现从 Behave (Python) 派生的步骤定义

我应该把 Behave 的实现代码放在哪里,这样它就不会通过 Behave 的测试?此外,我是否需要导入任何内容或放入任何代码,以便我编写的代码链接到功能文件。

这是我的功能文件的摘录\steps\main.feature...

以下是实施建议(来自运行行为):

我意识到这确实是基本信息,但文档中没有任何内容涵盖这一点,尽管谷歌上有很多教程,但没有一个涵盖这一点。我认为这太基本了。

0 投票
2 回答
2934 浏览

python - 在行为框架中使用自定义标签运行场景

如何使用自定义标签选择要运行的场景?

对于 Eaxmple,以下是功能文件

我有多个功能文件,每个功能文件都有很多场景。场景标签与上面提到的方式类似。我正在尝试运行场景

请建议是否有任何方法可以做到这一点。

0 投票
0 回答
297 浏览

python - Selenium 没有正确处理我的 javascript 对话框

我已经过去 5 个小时试图找到从昨天开始一直困扰我的解决方案。我正在使用行为和硒编写一些 BDD 测试来测试我的网络应用程序的产品添加功能。因此,要添加产品,用户必须单击一个按钮,该按钮将启动一个对话框,其中包含允许他填写他想要添加的产品的详细信息的表单。当用户单击提交时,对话框消失,并且 JS 代码使用 Ajax 请求使用新产品更新数据表表当我启动我的测试 selenium 找到产品添加表单并填写我提供的详细信息时,问题是当它点击提交时基本上没有任何反应,我的 JS 代码没有执行。这是提交表单的行为代码:

接下来是真正处理表单提交的JS函数

所以我想要的是:selenium 甚至能够运行 Ajax 请求吗?如果不是这种情况,我需要做什么才能使我的测试有效?