多个python Behave环境安装文件

时间:2016-09-27 13:49:03

标签: python python-behave

我试图摆脱行为框架中的某些标准并遇到一些问题。是否可以拥有多个具有before *和after * hooks的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文件中的* hook之后获取我之前的*。

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

1 个答案:

答案 0 :(得分:3)

迟到只有2年,但这是我的看法......

Behave不允许整理文件的灵活性。见这里:

此外,Behave不会以递归方式搜索它运行的目录。也就是说,Behave只查看.feature文件的当前(或指定)目录,仅查看.py目录中的feature/steps/个文件 - 不再进一步。

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

我自己并没有广泛尝试过,但有一个名为“behave main”的东西允许你从“主”文件控制一个Behave实例,类似于Java的主要方法。假设您可以使用此功能,逐个运行各个行为测试,每个测试都有自己的环境,功能和步骤。