java - 父子项目maven

标签 java maven selenium selenium-webdriver testng

我有一个场景。我们正在为我们的应用程序开发 Selenium Page Factory 自动化框架。要求是框架项目应该独立于测试项目(子项目)(或父项目)。

一旦定义了框架,它就可以被任意数量的子项目重用。

即父级应包含与 BasePage、BaseTest、DriverManager、DriverFactory 相关的类以及 chromedriver、IEdriver 等资源

子项目应包含从框架扩展 BasePage 的应用程序特定页面,以及从框架扩展 BaseTest 的测试用例。

子项目应该是任意数字,例如 app1、app2

请使用示例 pom.xml 文件建议最佳的 Maven 项目架构。

父级

|_src/main/java
            |_BasePage
            |_BaseTest
            |_ReadConfigOfChild
            |_DriverFactory
|_src/main/resources
            |_chromedriver.exe
            |_IEDriverServer.exe
            |_log4j2.xml

child

|_src/main/java
            |_Page1 extends BasePage
            |_Page2 extends BasePage

|_src/main/resources
            |_config.properties (URL, username, password)
|_src/test/java
            |_Tese1 extends BaseTest
            |_Test2 extends BaseTest
|_pom.xml
|_TestNgSuite.xml

当添加新子项时,我们应该能够简单地扩展父项,而无需编辑父项 pom

            |-  child1

parent  ----|-  child2

            |-  child3

最佳答案

听起来你所说的parent应该被称为core,并且它不应该是父项目,而应该是其他项目的依赖项。

说明

在 Maven 中,简单地说,你的父项目不是一个包含基类的项目,而只是一个没有源的项目,设置通用插件、依赖项和其他配置,由所有(子)项目(在你的聚合构建中)使用)。

编辑:
MyProj/pom.xml // Aggregation/Reactor - has no parent, no sources, and (usually) no resources, but lists all modules (including parent) as modules
MyProj/modules/parent/pom.xml // has no parent (or for example sonatype, if you deploy with them), no sources, but eventually some resources, no modules
MyProj/modules/parent/src/main/resources/config/checkstyle.xml
MyProj/modules/core/pom.xml // has *parent* as parent, no modules
MyProj/modules/core/src/main/java/com/myDomain/myPkg/core/BasePage.java
MyProj/modules/core/src/main/resources/log4j2.xml
MyProj/modules/ui/pom.xml // has *parent* as parent and *core* as a dependency, no modules
MyProj/modules/core/src/main/java/com/myDomain/myPkg/ui/MyUiPage.java (extends BasePage)
MyProj/modules/service/pom.xml // has *parent* as parent and *core* as a dependency, no modules
MyProj/modules/core/src/main/java/com/myDomain/myPkg/service/MyServicePage.java (extends BasePage)

关于java - 父子项目maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31604242/

相关文章:

python - 如何将更新后的页面内容传递给另一个函数?

java - 如果在其他配置文件中添加路由,为什么主配置中的路由未加载?

java - 错误org.springframework.beans.factory.BeanCreationException : Error creating bean Spring Boot

java - Maven 编译器插件不支持的类文件主要版本 60

java - 将第 3 方 JAR 安装到 Jenkins .m2 存储库

python , Selenium : can't find element by xpath when ul list is too long

python-3.x - WebDriverException : Message: The browser appears to have exited before we could connect error with GeckoDriver Selenium and Python

java - Java 帮助中的表格格式/printf 间距

java - 使用 UML 的 IntelliJ IDEA 正向工程?

java - 使用 Vaadin 获取 Liferay 用户信息