在jenkins build上运行junit测试时遇到错误

yzuktlbb  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(177)

目前的工作流程如下:我的java服务(jersey)在构建的docker映像可以部署到任何地方(通过jenkins)之前必须通过一个质量门。这个质量门包括最小的测试覆盖率。我的测试能够在我的本地IDE(Intellij Idea)上运行并通过,但是当在jenkins中构建时,我在运行测试时得到以下错误:

test1: javax.el.ELUtil.getExpressionFactory()Ljavax/el/ExpressionFactory;
test2: Could not initialize class "classBeingTested"

我已经在test文件夹中添加了一个配置文件(run.poperties)和一个日志配置文件(log42j),我知道它们都在按预期运行,因为不是所有的测试都失败了,并出现了这些错误。对于第一个错误,我已经在pom文件中添加了以下额外的依赖项(基于SO question):

<dependency>
     <groupId>org.glassfish.web</groupId>
     <artifactId>javax.el</artifactId>
     <version>2.2.4</version>
</dependency>
<dependency>
     <groupId>javax.el</groupId>
     <artifactId>javax.el-api</artifactId>
     <version>2.2.5</version>
 </dependency>

但是不好。仍然面临错误。第二个错误是关于无法初始化类,我完全不知道为什么会出现这个错误,但我也明白这可能是我的项目结构所特有的。任何关于这两个错误的帮助都是非常有帮助的。即使是一个合理的方法来在我的本地重新创建这个错误也是非常有帮助的,因为现在,我不知道这些错误是从哪里来的。
PS:我主要是一个python开发者,所以java不是我的强项。如果我的问题没有包含正确的信息,我提前道歉。请让我知道,如果需要的话,我会添加其他相关的细节

uajslkp6

uajslkp61#

这是由于与javax依赖项的一些潜在冲突造成的。

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.5.2</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.7.0</version>
</dependency>
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-inline</artifactId>
    <version>3.7.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-engine</artifactId>
    <version>1.5.2</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <version>5.4.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.4.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-junit-jupiter</artifactId>
    <version>3.1.0</version>
    <scope>test</scope>
</dependency>

相关问题