5

我试图脱离行为框架中的一些标准并遇到一些问题。是否可以有多个具有 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

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

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

4

1 回答 1

3

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

行为不允许您在组织文件方面具有整体灵活性。看这里:

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

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

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

于 2018-04-20T19:38:27.903 回答