问题标签 [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 投票
3 回答
1872 浏览

python - 从 Python 中的行为表中选择行

我正在使用行为框架在 Python 中开发测试。目前,我有一个场景大纲和下面的示例。我希望能够随时选择其中一个示例并在该示例上运行测试功能。我该怎么做呢?现在,每当我从命令行调用行为时,它都会针对我在场景大纲下的示例行为表中的每个示例条目执行场景。

编辑:我附上了一个截图,让事情更清楚。

在此处输入图像描述

此示例来自行为的文档。如果我们在消费电子表下查看,我们会看到 2 行,场景大纲将为其运行(因此它将运行两次)。假设我想测试其中一个示例,我们有 20 个这样的示例(意思是 20 行)。我如何能够只选择其中一个而不是运行我的行为测试并且不得不等待场景大纲完成所有案例(例如,如果我想要的示例是表上的最后一个条目)。

0 投票
4 回答
14042 浏览

bdd - 如何跳过行为 python BDD 框架中的测试?

我正在处理几个月前部分完成的代码分支,它们具有相互交织的依赖关系。因此,最简单的前进方法是将特定分支上的失败测试标记为待处理(rspec方式)或被跳过,并在所有内容合并后处理它们。

在其最终报告中,behave报告了通过的测试数、失败的测试数、跳过的测试数和未测试的测试数(当我按 Ctrl-C 中止运行时,这些测试非零)。因此behave,作为跳过测试的概念。我如何访问它?

0 投票
1 回答
965 浏览

json - 如何在 python-behave 中断言 JSON 相等性与失败测试的差异?

如何在 python-behave 中断言 JSON 相等性并在断言失败时获取 diff 作为输出?

在 Ruby 中我使用:https://github.com/collectiveidea/json_spec,所以我基本上是在 Python 中寻找类似的功能。

使用正常assert的语句,输出是非常无用的。

0 投票
1 回答
1113 浏览

python - python可以表现处理assertRaises吗

我开始使用Behave来实现一些测试。我想替换一些我现有的单元测试(这是更多的功能测试)。其中一些使用 assertRaises 来检查对后端服务的某些调用是否引发了它们应该引发的错误。是否有可能在 Behave(或者更确切地说是 Gherkin)中有类似的东西?

以下单元测试调用我的后端服务,并且作为访客登录,无法执行管理任务(do_admin_task)。它应该引发异常。

在我的功能文件中,我将如何创建我的场景?像这样?

我相信这已经在when步骤中引发异常,因此甚至不会进入then步骤。

我可以想象的一种可能的方法是创建一个特定的步骤来执行这两个步骤并进行异常处理。但是,如果我想在较低级别的调用中模拟错误,那么我将不得不重新编写其中的许多步骤,这正是我希望通过首先切换到 Behave 来避免的。

我应该如何处理这个?

0 投票
4 回答
6172 浏览

python - 行为测试的模块化结构

现在我有以下测试功能目录:

由于 BehaveTest1 和 BehaveTest2 的测试步骤很常见,我想实现一个通用模块,两个测试用例都可以在需要时调用它。目前,我在 Tests/ 文件夹中创建了一个 common/ 目录,并通过以下方式导入它(在每个测试功能的 test_steps.py 文件中):

但是我不想弄乱路径,所以我想知道是否有更好的方法来使用行为测试功能的结构来做到这一点?

0 投票
1 回答
587 浏览

python - 在行为上读取当前步骤字符串

我想读取匹配的当前步骤字符串。在行为中,一旦匹配完成,它就会运行用匹配的步骤字符串标记的函数。我想打印这个步骤字符串。我怎么能做这么简单的任务?

例子:

0 投票
1 回答
2704 浏览

python-behave - Python 行为从 python2.7 而不是 python3.4 运行

当我运行表现时,它似乎从 python2.7 运行并且找不到为 python3.4 安装的 selenium。我是否需要配置行为以在某处运行 python3.4 - 我在行为站点或其他地方什么都看不到。有关于在 python 3.4 中使用行为的帖子,所以这是可能的。

这是我看到的:

PYTHONPATH指向 python 3.4/dist-packages:

我已经安装在/usr/local/lib/pythonX.X/dist-packagesXX 是 2.7 和 3.4的地方

非常感谢任何帮助。

0 投票
0 回答
57 浏览

python - 如何让行为冒烟以首先尝试最后一个失败的场景?

py.test有一个很棒的功能叫做--failed-first它告诉它运行上次失败的测试在其他人之前。这大大加快了执行过程。

我正在寻找类似的东西behave smoke。有没有办法实现这个?

0 投票
5 回答
2567 浏览

bdd - 如何在行为测试中多次调用场景而没有表格化项目?

我想在没有桌面项目的 Gherkin 测试中调用场景 - 比如说 500 次。原因是我想使用随机变量而不是自己编写。我知道如何在测试中实现随机功能,但它只被调用一次。

例如 :

随机导入

速度 = ['10', '20', '30', '40', '50']

def next_speed(): return random.choice(speeds)

如果我使用这样的随机功能,我怎么能调用这个场景 500 次?

提前致谢。

0 投票
1 回答
340 浏览

python - Python试图运行行为得到错误

我正在尝试使用行为来运行硒测试,但我一直坚持这个想法。我已经设置了 python、selenium 并按照它应该的方式运行。我正在使用 selenium 运行 python 脚本没有问题。当我尝试使用行为运行它们时,我的问题就开始了。我的 python 是 3.5.2,selenium 是 2.53.2,表现是 1.2.5。当我尝试运行任何功能文件时,出现以下错误。如果我尝试使用 PyCharm IDE 或直接从命令提示符运行它并不重要。有没有人知道什么是错的或我做错了什么?

错误:

进程以退出代码 1 结束