我想用Docker构建一个测试环境,在那里我可以远程发送JUnit测试类(包括测试的代码),执行测试并检索结果。
我找到了一些文章,解释了如何使用docker来测试redis中的数据库连接/写入,但不是如何简单地让我的测试在docker上执行并检索结果。
您对如何实现这一目标有什么建议吗? 我不太了解詹金斯,但这可能会解决我的问题吗? 外面有什么好的框架吗?
答案 0 :(得分:0)
在dockerfile中,检查代码并执行" maven test"命令,将结果重定向到已装入目录中的文件中。 每次构建dockerfile时,都会对项目进行单元测试。
使用docker你还有一个#34; docker test"命令。我不知道是否有一个插件可以在jenkins上使用它。
答案 1 :(得分:0)
我发现工作的一种方法(使用Gradle)如下。我知道您专门将JUnit用作您的测试框架,但实际上,我认为类似的事情可能有用。
Dockerfile(我叫我的Dockerfile.UnitTests
):
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/* /
然后我使用(在Windows 10上的Gitbash中)运行它:
> DOCKER_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
的根结构