如何使用 Maven Multi 模块在项目外执行 TestNG 测试用例

How to execute a TestNG test case outside a project, using Maven Multi module

我正在开发一个多模块 Maven 项目。

我的项目结构如下 -

父模块(打包 - pom)
BaseFramework(打包 - jar)
TestProject(打包 - jar)(在项目的 pom.xml 中添加 BaseFramework 作为依赖项)
TestRunner(打包-jar)(在项目的pom.xml中添加了BaseFramework和TestProject作为依赖项)

TestProject 有一个 testNG.xml 文件 执行指定 class 的测试用例。 测试用例使用数据提供者,路径被提及为相对路径 (./src/main/resources/pmRolDetailsWithId.xml)

TestRunner 项目有一个 Suite Runner 文件(比方说 SuiteRunner.xml),其中包含来自 (TestProject) 的 testNG.xml 的路径。

执行时,测试会尝试在 TestRunner 项目中找到 "pmRolDetailsWithId.xml" 文件。 路径 - /TestRunner/src/main/resources/pmRolDetailsWithId.xml 并且找不到文件。

预计它应该从 TestProject 获取文件。 即路径应该是 /TestProject/src/main/resources/pmRolDetailsWithId.xml

我认为当测试控件从 TestRunner 项目 - TestProject 进入时,根项目没有改变

如果我遗漏了什么请纠正我并帮助我解决这个问题。

附上错误截图。

Screenshot of the error

我找到了答案。

我必须更改提供文件相对路径的方式。

早些时候- 文件路径 - /src/main/resoruces/pmRolDetailsWithId.xml

并且由于执行是从不同的模块触发的,所以完整路径是
/users/xyz/Parent-Module/TestRunner/src/main/resoruces/pmRolDetailsWithId.xml

已更改 - 文件路径 - ../TestProject/src/main/resoruces/pmRolDetailsWithId.xml

现在完整的路径是 /users/xyz/Parent-Module/TestRunner/../TestProject/src/main/resoruces/pmRolDetailsWithId.xml