Selenium和Appium类应存放在src/main/java还是src/test/java
路径存放可行性与风险说明
Selenium代码存放在src/test/java的情况
- 可行性:完全可行,不会出现功能性问题
- 潜在风险:
- 若你封装了Selenium公共工具类、通用页面对象需要被其他模块依赖,Maven/Gradle默认不会将
src/test/java下的类打包发布,其他模块无法直接引用这些类 - 若你的Selenium代码仅为当前项目的Web UI测试用例,无对外依赖需求,无任何风险
- 若你封装了Selenium公共工具类、通用页面对象需要被其他模块依赖,Maven/Gradle默认不会将
Appium代码存放在src/main/java的情况
- 可行性:完全可行,不会出现功能性问题
- 潜在风险:
- 若你存放的是Appium测试用例逻辑,
src/main/java下的代码默认会被打入主构件,会造成包体积冗余,若测试依赖(如TestNG、断言库)未配置test范围,还可能引发依赖冲突 - 若你存放的是Appium通用封装能力,需要对外提供给其他项目引用,无任何风险
- 若你存放的是Appium测试用例逻辑,
本场景下的最佳实践
你当前项目仅包含Selenium、Appium相关代码,无业务代码,可根据项目定位选择存放规则:
- 若项目为纯测试执行项目,所有代码都是测试用例,无对外提供公共能力的需求:
所有Selenium、Appium代码统一放在src/test/java下,通过包名区分两类能力即可,示例:- Selenium代码包路径:
com.automation.web.selenium - Appium代码包路径:
com.automation.mobile.appium
- Selenium代码包路径:
- 若项目为公共测试工具包,封装的是通用自动化能力,需要给其他业务测试项目依赖:
所有公共封装的工具类、基础模板放在src/main/java下,本项目验证工具正确性的自测用例放在src/test/java下,同样通过包名区分Selenium与Appium相关代码
核心判定逻辑非常简单:需要对外暴露被其他模块依赖的代码放src/main/java,仅当前项目内部执行的测试逻辑放src/test/java,和代码属于Selenium还是Appium技术栈无强制绑定关系。
内容的提问来源于stack exchange,提问作者edmund
相关产品推荐
相关产品推荐

