问题标签 [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 回答
8792 浏览

python - 在行为python中定义上下文变量

有时,您需要动态定义值(例如现在的日期时间、随机字符串、随机整数、文件内容等)并在不同的步骤中使用它们,而无需显式或硬编码值。

所以,我的问题是如何在步骤中定义变量(正确的方法)以在以下步骤中使用这些变量。

一些例子

这是一个基本示例,试图解释为什么我想在步骤中定义变量并将它们保存在上下文中以在以下步骤中使用它。

我的想法是修改 before_step 和 after_step 方法...在上下文中设置一个变量来存储我的自定义变量,如下所示:

场景大纲,使用类似这样的定义变量"<some_identifier>",然后为每个示例替换步骤中的值。

它基本上是为了重现行为,但对于任何类型的步骤,简单或使用表格。

这是做这样的事情的正确方法吗?

0 投票
1 回答
239 浏览

django-tests - Django-behave - 没有行为测试

有人对 django-behave 有经验吗?我无法运行行为测试。我有最新版本的 'behave''django-behave'已安装。'django_behave'在我INSTALLED_APPS和我的 settings.py 中,我还添加了TEST_RUNNER = 'django_behave.runner.DjangoBehaveTestSuiteRunner'. 我有工作 django 项目。它的一些文件和目录如下所示:

当我在命令行中提示“python manage.py test”时,我可以看到测试正常执行,没有行为。我错过了什么?

0 投票
1 回答
543 浏览

python-2.7 - 如何在行为中测试未捕获/未处理的异常?

当应用程序中出现未考虑的异常(未捕获/未处理的异常)时,应记录该异常。我想在行为中测试这种行为。

日志记录用于检测未处理的异常,因此开发人员可以实现对这些异常的处理或在需要时修复它们。

为了对此进行测试,我想我必须让被测代码引发异常。问题是,如果不对生产代码中的异常引发进行硬编码,我无法弄清楚如何做到这一点。这是我想避免的,因为我认为这个测试代码不属于生产。

在进行单元测试时,我可以轻松地模拟一个函数来引发异常。在行为上我不能这样做,因为应用程序是在另一个进程中启动的。

如何在行为测试中引发异常,因此看起来好像是生产代码导致了它,而无需在生产代码中对异常进行硬编码?

0 投票
1 回答
5425 浏览

python - 一个 Behave 步骤的数据如何传递到后面的步骤?

考虑一个行为场景:

所以我有一个@when 函数,它产生(比如说)一个随机数,我需要该数字出现在@then 条件测试中。

如何将一个步骤的结果传递给另一个?

0 投票
1 回答
1300 浏览

python-3.x - 行为,具有相同名称的多个步骤

我有两个功能文件:

和两个步骤文件:

每个功能文件的开头都是这样的:

按照不同的表。

当我在步骤文件装饰器中编写时:

它怎么知道背景属于哪个特征文件?当我跑步时表现

new_directory.feature

我可以看到它从 delete.feature 运行该步骤。除了拥有所有唯一的步骤名称之外,有没有办法在这些文件之间产生差异?

0 投票
1 回答
341 浏览

python - 使用行为框架时出现 UnicodeDecodeError(1.2.5)

我有多个功能文件,每个功能文件至少包含 5 个场景(测试用例)。使用行为框架运行所有功能,给出以下命令

我收到以下异常

发生此异常时,行为不会运行下一个场景(测试)

任何人都可以帮助解决这个问题

0 投票
1 回答
206 浏览

python - 将自定义选项解析器实现为行为不起作用

我正在尝试将自定义选项解析器实现为行为配置解析器,但无法这样做。

我通过行为调用behave_runner.py,这是behave_runner.py:

我已经尝试过monkey_patching,这也是不行的。--env 是我想要传递给配置解析器以从行为.ini 中读取部分的内容,如下所示:

所以在 environment.py 中,我正在阅读 using config 解析器,但我似乎无法将自定义选项注入到行为解析器中,因此它没有获取类似的behave -E dev内容,以及如何从我拥有的自定义解析器中读取它放入一个if configuration.something.something == 'dev'?我搜索了很多地方,一切都指向我不想使用的用户数据。

我希望它的工作类似于选项解析器 ~ 可以传入默认值但不能传入自定义内容。#270在行为中的补丁修复对我也没有帮助..提前谢谢!

0 投票
1 回答
1044 浏览

python - Python Behave 中的模棱两可的步骤

我的业务用户喜欢使用 then 句子“它应该被创建”,它由场景的上下文决定。例如:

或者

在“那么它应该被创建”中,我想检索创建的礼券或客户订单退货以进行比较。但是,它们具有完全不同的 API 和对象。

首先,有没有办法在 Python Behave 中做到这一点而不会得到“Exception AmbiguousStep:”?

如果不是,那么在 BDD 世界中最好的做法是什么,而不用强迫用户不断重复自己说“那么应该创建礼券”或“那么应该创建客户订单退货”?

谢谢。

0 投票
1 回答
523 浏览

python - 手动创建 python 行为上下文

我想通过手动调用 before_all、after_all 等来测试 python 行为场景来启动 selenium webdriver 并手动测试,这样我就可以看到实时显示的错误消息。

如何以编程方式创建一个有效的行为上下文对象,我可以将其作为参数传递给这些脚手架方法,而无需从命令行调用行为?

0 投票
1 回答
4320 浏览

python - 如何使用 Python 获取当前的行为步骤?

我正在使用 Python 的行为来进行测试。在步骤文件中,我想获取当前步骤名称,因为如果测试失败,我会截图并将文件重命名为步骤名称。

像这样的东西:

给定用户登录
用户做某事
然后发生了一些事情

我希望我的步骤代码是这样的:

任何人都知道如何做到这一点?