多个 python Behave 环境安装文件

Multiple python Behave environment Setup files

我试图摆脱行为框架中的一些标准,运行进入一些问题。是否可以有多个 environment.py 文件具有 before* 和 after* 挂钩?

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

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

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

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

只晚了 2 年,但这是我的看法...

Behave 在组织文件的方式上不允许完全灵活。看这里:

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

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

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