python - 多个python Behave环境设置文件

标签 python python-behave

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

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

最佳答案

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

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

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

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

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

关于python - 多个python Behave环境设置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39726455/

相关文章:

python - 如何在不设置尺寸的情况下设置 tkinter 窗口的位置

python - 如果值不存在,则从 python 向 key=value 添加值

Python 为 os.listdir 返回的文件名引发 FileNotFoundError

python - 为什么我不能在 numpy 中提升到负幂?

python-behave - 如何在python行为.feature文件中传递像列表或字典这样的对象

带套接字的 Python Tic Tac Toe - 套接字问题

python - 从 python 而不是命令行运行 python behave

python - 来自一个 Behave 步骤的数据如何传递到后面的步骤?

python - 如何使用 Pycharm Community 运行功能文件

python - 在步骤实现中跳过一个 behave 步骤