放心测试 Quarkus 不 运行 withing Docker 容器
Restassured Test Quarkus not running withing Docker Container
我有一个正常的 Quarkus Restassured 测试在我的工作站上本地运行得很好:
@Test
public void testHelloEndpoint() {
given()
.when().get("/ifc")
.then()
.statusCode(200)
.body(containsString("hello"));
}
然而,当我 运行 在 Gitlab CI 上使用来自图像 image: maven:3.6.3-jdk-11
的 docker 容器时,它挂起了。我想,测试想要连接到容器内部的 locahost:8081,这是行不通的。
如何解决这个问题?
gitlab-ci:
image: maven:3.6.3-jdk-11
variables:
MAVEN_CLI_OPTS: "-s m2-settings.xml --batch-mode"
#MAVEN_CLI_OPTS: ""
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
cache:
paths:
#- .m2/repository/
#- target/
build:
stage: build
script:
- mvn $MAVEN_CLI_OPTS compile
test:
stage: test
script:
- java --version
- mvn $MAVEN_CLI_OPTS install
deploy:
stage: deploy
script:
- mvn $MAVEN_CLI_OPTS deploy
only:
- master
when: manual
当我在本地 运行 相同的 docker 图像(不是 gitlab)时,我看到以下错误:
[ERROR] Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 61.157 s <<< FAILURE! - in ch.siemens.bt.ifc.ResourceTest
[ERROR] testGenerateEndpoint Time elapsed: 0.073 s <<< ERROR!
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
[ERROR] testTransformEndpoint Time elapsed: 0.001 s <<< ERROR!
java.lang.NoClassDefFoundError: Could not initialize class io.quarkus.test.common.RestAssuredURLManager
[ERROR] testHelloEndpoint Time elapsed: 0.001 s <<< ERROR!
java.lang.NoClassDefFoundError: Could not initialize class io.quarkus.test.common.RestAssuredURLManager
我发现使用图像 quay.io/quarkus/centos-quarkus-maven:20.0.0-java11
是可行的。我不明白为什么 - 因为我没有进行本地构建。
我有一个正常的 Quarkus Restassured 测试在我的工作站上本地运行得很好:
@Test
public void testHelloEndpoint() {
given()
.when().get("/ifc")
.then()
.statusCode(200)
.body(containsString("hello"));
}
然而,当我 运行 在 Gitlab CI 上使用来自图像 image: maven:3.6.3-jdk-11
的 docker 容器时,它挂起了。我想,测试想要连接到容器内部的 locahost:8081,这是行不通的。
如何解决这个问题?
gitlab-ci:
image: maven:3.6.3-jdk-11
variables:
MAVEN_CLI_OPTS: "-s m2-settings.xml --batch-mode"
#MAVEN_CLI_OPTS: ""
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
cache:
paths:
#- .m2/repository/
#- target/
build:
stage: build
script:
- mvn $MAVEN_CLI_OPTS compile
test:
stage: test
script:
- java --version
- mvn $MAVEN_CLI_OPTS install
deploy:
stage: deploy
script:
- mvn $MAVEN_CLI_OPTS deploy
only:
- master
when: manual
当我在本地 运行 相同的 docker 图像(不是 gitlab)时,我看到以下错误:
[ERROR] Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 61.157 s <<< FAILURE! - in ch.siemens.bt.ifc.ResourceTest
[ERROR] testGenerateEndpoint Time elapsed: 0.073 s <<< ERROR!
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
[ERROR] testTransformEndpoint Time elapsed: 0.001 s <<< ERROR!
java.lang.NoClassDefFoundError: Could not initialize class io.quarkus.test.common.RestAssuredURLManager
[ERROR] testHelloEndpoint Time elapsed: 0.001 s <<< ERROR!
java.lang.NoClassDefFoundError: Could not initialize class io.quarkus.test.common.RestAssuredURLManager
我发现使用图像 quay.io/quarkus/centos-quarkus-maven:20.0.0-java11
是可行的。我不明白为什么 - 因为我没有进行本地构建。