当前位置: 首页 > 知识库问答 >
问题:

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

梁丘成和
2023-03-14

我是詹金斯的新手,我有硒代码,我正在使用maven构建。当我以maven运行pom.xml文件时,我在pom.xml提到了maven的testng.xml文件-

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:\D\QURATE\LoggingAndAssertExample\target
[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:\D\QURATE\LoggingAndAssertExample\target\classes
[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 hub repo url)都可用。我甚至可以运行另一个项目,它的来源来自我的本地

共有2个答案

国言
2023-03-14

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

曹季同
2023-03-14

确保显式地将TestNG依赖项添加到pom中。xml文件,如:

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

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

 类似资料:
  • 原因:java.lang.ClassNotFoundException:javax.mail.address

  • 这是我的第一个gradle项目。我正在为gradle使用Buildship eclipse插件。在我的build.gradle文件中,我应用了以下插件- 所有相关的依赖项都定义为编译,如下所示- 该项目也使用tomcatRun命令成功构建和运行。但是eclipse在java文件中显示了我的导入的编译错误,称依赖关系无法解决。 我试过项目-

  • 我已将Google Guava Project(https://github.com/google/guava)克隆到我的本地Mac计算机 我事先运行了mvn验证,没有任何问题。 当运行命令mvn clean然后运行mvn软件包时,我遇到了这个错误。 [错误]未能在 project guava-tests 上执行 goal org.apache.maven.plugins:maven-compil

  • 我认为,错误消息与无关,而是因为代码/程序集/包特定的结构/修饰符等。 因此,当导航(通过命令)到元数据并很好地编译代码(包括,也成功地显示方法说明)时,会显示错误(并且无法访问(来自引用的程序集的)代码)。 该方法在程序集中定义如下: 有什么想法吗?

  • 项目无法执行maven生命周期映射的两个生命周期阶段: null

  • 问题内容: 当以下Java代码在eclipse中执行时,它会提供正确的输出(即打印“ Class B”),但是根据Java规范,该代码无法编译(因为超类构造函数需要一个参数,并且构造函数由B类的编译器包括对超类no arg构造函数的调用(未定义),并且当尝试在命令行中使用javac命令编译文件时,它仅编译超类(即A类),并因以下编译而失败错误: 以下是java文件的内容: 有人可以解释eclips