代码从 eclipse 构建得很好,但从 Jenkins 抛出编译时错误



我是 Jenkins 的新手,我有使用 maven 构建的硒代码。我已经在pom中提到了maven的testng.xml文件.xml当我从Eclipes将pom.xml文件作为maven -> build运行时,代码构建很好,项目的jar文件甚至生成。我已经将相同的代码集成到 Jenkins 作业中。当我运行作业时,我观察到 Jenkins 没有从 pom 下载 jar .xml [因为我在 Jenkin 作业控制台中没有看到任何 jar 下载日志]及其抛出错误,说找不到包

ajnakir@WKWIN9326287 MINGW64 /c/D/QURATE/LoggingAndAssertExample (master)
$ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] --------------< com.sapient.mercury:PageFactoryFrameWork >-------- 
------
[INFO] Building PageFactoryFrameWork 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]--------------------------- 

[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ 
PageFactoryFrameWork ---
[INFO] Deleting C:DQURATELoggingAndAssertExampletarget
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ 
PageFactoryFrameWork ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered 
resources, i.e. build is platform dependent!
[INFO] Copying 5 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ 
PageFactoryFrameWork ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, 
i.e. build is platform dependent!
[INFO] Compiling 4 source files to 
C:DQURATELoggingAndAssertExampletargetclasses
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/D/QURATE/LoggingAndAssertExample/src/main/java/
com/banking/resources/BasePage.java:[17,26] package org.testng.asserts 
does not exist
[ERROR] 
/C:/D/QURATE/LoggingAndAssertExample/src/main/java/
com/banking/resources/BasePage.java:[23,23] cannot find symbol
symbol:   class SoftAssert
location: class com.banking.resources.BasePage
[ERROR] /C:/D/QURATE/LoggingAndAssertExample/src/main/
java/com/banking/resources/Browser.java:[16,26] package 
org.testng.asserts does not exist
[ERROR] 
/C:/D/QURATE/LoggingAndAssertExample/src/main/java/
com/banking/resources/Browser.java:[23,23] cannot find symbol
symbol:   class SoftAssert
location: class com.banking.resources.Browser
[ERROR] 
/C:/D/QURATE/LoggingAndAssertExample/src/main/java/
com/banking/resources/Browser.java:[23,51] cannot find symbol
symbol:   class SoftAssert
location: class com.banking.resources.Browser
[INFO] 5 errors
[INFO] -------------------------------------------------------------
[INFO] ----------------------------------------------------------------- 
-------
[INFO] BUILD FAILURE
[INFO] ----------------------------------------------------------------- 
-------
[INFO] Total time:  2.542 s
[INFO] Finished at: 2019-08-14T19:15:25+05:30
[INFO] ----------------------------------------------------------------- 
-------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- 
plugin:3.8.1:compile (default-compile) on project PageFactoryFrameWork: 
Compilation failure: Compilation failure:
[ERROR] 
/C:/D/QURATE/LoggingAndAssertExample/src/main/java/
com/banking/resources/BasePage.java:[17,26] package org.testng.asserts 
does not exist

请帮助我应该如何进行

我已经交叉检查并确保所有必要的插件和映射(如 Git 集线器存储库 url)都可用。我什至能够运行另一个项目,该项目的源代码来自我的本地

确保将 TestNG 依赖项显式添加到您的 pom.xml 文件中,例如:

<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>

通常,根据页面对象模型设计模式最佳实践,您不应该在页面对象类中有任何断言,它们的目标是在 UI 和测试逻辑之间提供一个抽象层,因此您应该在那里只有 WebElements 定义和帮助程序函数,但断言应该只放在测试代码中, 不在页面对象中

修复:我们不应该在pom.xml中提及依赖项的范围标签,我已经从pom.xml中的testng依赖项中删除了测试,我的maven构建成功完成。

相关内容

最新更新