繁体   English   中英

亲子项目专家

[英]Parent and child projects maven

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

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

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

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

子项目应为任意数字,例如app1,app2

请通过示例pom.xml文件提出最佳的Maven项目架构。

父母

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

儿童

|_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

听起来像你所说的父母更应被称为核心 ,它不应该是父母,而是其他项目的依赖。

说明

简而言之,在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) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM