多个python Behave环境安装文件

bgu*_*ura 5 python python-behave

我试图摆脱行为框架中的某些标准并遇到一些问题.是否可以拥有多个具有before*和after*钩子的environment.py文件?

我正在为一套微服务编写测试工具.我有以下目录树.

root
|-- step_defintions
|   |-- service1
|       |-- environment.py
|       |-- __init__.py (steps, imports root.step_defintions.service1.envrionment)
|   |-- service2
|       |-- environment.py
|       |-- __init__.py (steps, imports root.step_defintions.service2.envrionment)
|-- features
|   |-- environment.py
|   |-- steps
|       |-- __init__.py (imports root.step_definitions *)
|   |-- service1
|       |-- 000_service1.feature
|       |-- 001_service1.feature
|   |-- service2
|       |-- 000_service2.feature
Run Code Online (Sandbox Code Playgroud)

我的问题是它似乎没有在step_definitions/service [1 | 2] /envrionment.py文件中的*hook之后获取我之前的*.

我想将这些分开而不是在功能目录中用于组织目的.文件设置一些对象并将它们附加到上下文以跟踪某些步骤之间的数据

nat*_*323 3

虽然晚了两年,但这是我的看法......

Behave 不允许您在组织文件时具有完全的灵活性。看这里:

此外,Behave 不会递归搜索它运行的目录。也就是说,Behave 仅在当前(或指定)目录中查找.feature文件,并且仅查找.py该目录中的文件。feature/steps/,仅此而已。

据我所知,您可以利用 Behave 的“标签”功能在运行测试时添加一些组织。功能文件和步骤实现的良好命名约定也会大有帮助。

我自己还没有广泛尝试过,但是有一个叫做“behave main”的东西,它允许您从“main”文件控制 Behave 实例,类似于 Java 的 main 方法。假设使用此功能,您可以一个接一个地运行单独的行为测试,每个测试都有自己的环境、功能和步骤。

  • 如果您使用的是 1.2.5a1 版本的 Behave,则可以在运行时使用 [stage](https://github.com/behave/behave/blob/master/docs/new_and_noteworthy_v1.2.5.rst#test-stages) 标志测试。这允许您在环境文件中添加您想要运行的阶段名称作为前缀。 (2认同)