我试图摆脱行为框架中的某些标准并遇到一些问题.是否可以拥有多个具有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文件中的* hook之后获取我之前的*.
最佳答案
只有2年的晚了,但这是我的看法……
Behave不允许您整理文件的灵活性.见:
此外,Behave不会以递归方式搜索它运行的目录.也就是说,Behave只查看.feature文件的当前(或指定)目录,并仅查找feature / steps /目录中的.py文件 – 不再进一步查看.
据我所知,您可以利用Behave的“标记”功能在运行测试时添加一些组织.功能文件和步骤实现的良好命名约定也将有很长的路要走.
我自己并没有广泛尝试过,但是有一个叫做“行为主”的东西,允许你从“主”文件控制一个Behave实例,类似于Java的主要方法.假设您可以使用此功能,逐个运行各个行为测试,每个测试都有自己的环境,功能和步骤.