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

python - 将 Behave 或 Lettuce 与 Python 单元测试集成

我正在用 Python 研究 BDD。结果的验证是一种拖累,因为正在验证的结果不会在失败时打印。

比较行为输出:

到 SpecFlow+NUnit 输出:

使用 SpecFlow 输出查找故障原因要快得多。要获取错误的变量内容,必须手动将它们放入字符串中。

生菜教程

行为教程

将此与Python unittest进行比较:

导致:

但是,Python unittest 中的方法不能在TestCase实例外部使用。

有没有一种好方法可以将 Python unittest 的所有优点集成到 Behave 或 Lettuce 中?

0 投票
1 回答
146 浏览

logging - 记录传递给行为的命令行选项

我正在使用命令行选项启动 python-behave,例如(测试输出正在写入日志文件)

我想记录正在传递哪些命令行选项以在日志文件中运行,但我无法在文档中找到如何操作。我尝试在我的 environment.py 中使用@capturewith before_allhook(没有新记录)

更新:我只需要记录 -D 选项并将它们包含在相关的 json 输出中。

有谁知道如何设置自定义登录行为?谢谢!

0 投票
1 回答
555 浏览

logging - 如何捕获失败步骤的堆栈跟踪和异常

我是 Behave 的新手,不熟悉它的日志捕获范例。

当某个步骤由于异常而失败时,我需要提取堆栈跟踪(回溯)以进行自定义处理。

我怎样才能捕捉到这些信息?

谢谢!

编辑:我不是在问如何捕获预期的异常。相反,我问的是如何获取失败测试的堆栈跟踪。

这一定是我在文档中找不到的 Behave 框架的基本功能。我不是在寻找任何不寻常的东西。

0 投票
2 回答
4863 浏览

python-behave - 如何使用 python 在 Behave 中重试失败的场景

有人可以告诉我如何使用 Python 在 Behave 中再次运行失败的测试吗?

如果失败,我想自动重新运行失败的测试用例。

0 投票
2 回答
1033 浏览

python - 如何使用 python 行为排除多个模式

我有 10 个功能文件,我想从中排除 api.feature 和 integration.feature 。我如何使用行为来做到这一点?

以上 2 个选项均无效。

0 投票
1 回答
1454 浏览

python - 在 python-behave 中循环执行 n-1 次

我有一个行为步骤,它调用另一个 python 类中的方法,如下所示

JSONUtil类中的parsejson方法如下

执行此步骤时。我得到以下输出

但是当通过以下方式调用 parsejson 方法时

我得到以下输出

关于为什么使用行为调用代码时执行for循环n-1次的任何原因/指针?

0 投票
1 回答
784 浏览

python-behave - 如何从另一个场景执行一个场景?

下面是我想在另一个场景中执行一个场景的示例。有没有办法做到这一点?

0 投票
1 回答
216 浏览

python - 如何只运行一半的 python 行为测试

我们有两台机器,目的是将我们的测试分散到机器上,以加快测试速度。我想知道一种方法来告诉行为运行一半的测试。我知道--tags参数,但这太麻烦了,因为当测试套件增长时,如果我们希望将其保持在中间点,我们的--tags参数也必须如此。我还需要知道另一半的哪些测试没有运行,这样我就可以在另一台机器上运行这些测试。

TL;DR 有没有一种简单的方法可以让行为动态地运行一半的测试?(这不包括通过使用--tags指定哪些测试)

有没有办法找到另一半没有运行的测试?

谢谢

0 投票
0 回答
538 浏览

python - 无法从命令行运行行为

我正在尝试从命令行运行行为(使用 cmder & sublime text 3),但我得到以下输出

我也提到了这个github线程,我不太明白。

0 投票
1 回答
488 浏览

python - Windows 上的 Python Behave + 非 ascii 步骤

Python BDD 框架 Behave 在其runner.py

如您所见,没有为open. 根据其文档,locale.getpreferredencoding用于此类情况。

但是在 Windows 上,这个函数总是返回一个字节的字符集(所谓的“非 unicode 程序的字符集”)。拉丁语是 Windows-1252,西里尔语是 Windows-1251 等。

因此,UTF-8 py 文件总是被破坏。

我的问题是,如果不想使用 1 字节字符集,如何在 Windows 上使用非 ascii 步骤定义和 Behave?