咨询Behave Selenium中指定目录结构的可行性
嘿,我来帮你梳理下这个问题!你现在正在重构代码,打算把多个仓库合并成一个,同时在调整Behave+Selenium的测试目录结构对吧?先看看你目前规划的这个结构:
DIRECTORY STRUCTURE: +-- main_repository/ +-- other_dev_folders/ +-- testing/ +-- another_folder_layer/ +-- features/ +-- platform1/ | +-- platform1feature1.feature | +-- platform1feature2.feature +-- platform2/ | +-- [你的platform2测试文件]
首先可以明确告诉你:这种目录结构完全可行!Behave对测试目录的灵活性很高,只要你做好路径配置,就能顺利运行测试。这里给你几个实用的建议:
指定测试文件路径:Behave默认会在当前目录下的
features文件夹查找测试用例,但你的features嵌套在testing/another_folder_layer/下面,所以运行时可以通过命令行参数指定路径,比如:behave --features testing/another_folder_layer/features/。更省心的方式是在项目根目录创建behave.ini配置文件,在里面设置默认的features路径,这样每次运行就不用手动输入路径了,配置示例如下:[behave] features_dir = testing/another_folder_layer/features对应组织步骤定义:既然按平台拆分了features,建议你的steps步骤定义也按平台来划分,比如在
testing/another_folder_layer/features/steps下创建platform1、platform2子文件夹,分别存放对应平台的步骤代码。这样不仅逻辑清晰,还能避免不同平台的步骤函数出现命名冲突。统一依赖管理:合并仓库后,一定要把Behave、Selenium等依赖统一维护,比如用
requirements.txt或者pyproject.toml来记录版本,确保所有平台的测试环境一致,避免出现因依赖版本差异导致的测试失败。
另外,如果你后续还要给目录添加更多层级或者文件,只要保持逻辑连贯,Behave都能很好适配,核心就是确保Behave能找到你的features文件和对应的步骤定义就行。
内容来源于stack exchange

