Java 在Docker容器内执行JUnit测试
我想用Docker构建一个测试环境,在那里我可以远程发送JUnit测试类(包括测试的代码),执行测试并检索结果 我找到了一些文章,解释了如何使用docker在redis中测试DatabaseContection/writing,但没有解释如何简单地让我的测试在docker上执行并检索结果 你有什么建议如何实现这一目标? 我对詹金斯了解不多,但这能解决我的问题吗?Java 在Docker容器内执行JUnit测试,java,docker,junit,Java,Docker,Junit,我想用Docker构建一个测试环境,在那里我可以远程发送JUnit测试类(包括测试的代码),执行测试并检索结果 我找到了一些文章,解释了如何使用docker在redis中测试DatabaseContection/writing,但没有解释如何简单地让我的测试在docker上执行并检索结果 你有什么建议如何实现这一目标? 我对詹金斯了解不多,但这能解决我的问题吗? 在dockerfile中,签出代码并执行“maven test”命令,将结果重定向到挂载目录中的文件中。 每次构建dockerfile
在dockerfile中,签出代码并执行“maven test”命令,将结果重定向到挂载目录中的文件中。 每次构建dockerfile时,都要对项目进行单元测试
使用docker,您还可以使用“docker测试”命令。我不知道是否有一个插件可以在jenkins上使用它。我发现一种有效的方法(使用Gradle)如下所示。我知道您特别引用JUnit作为您的测试框架,但我实际上认为类似的东西可以工作 Dockerfile(我称我的
Dockerfile.UnitTests
):
然后,我使用(在Windows 10上的Gitbash中)运行此命令:
>DOCKER\u BUILDKIT=1 DOCKER build-f Dockerfile.UnitTests--output type=tar,dest=UnitTests.tar。
这将生成一个tar文件,其中包含html文件中显示的测试结果
我在Gitlab CI/CD管道中执行了上述操作,然后将结果发送到web API进行分析
有几个假设:
src/test/java/groupname/projectname/testfile.java
FROM gradle:jdk8 AS test-stage
WORKDIR /app
COPY . ./
RUN gradle clean
RUN gradle test
FROM scratch AS export-stage
COPY --from=test-stage /app/build/reports/tests/test/* /