【问题标题】:How do I run JUnit tests in a Docker container and have the container fail startup when JUnit fails?如何在 Docker 容器中运行 JUnit 测试并在 JUnit 失败时让容器启动失败?
【发布时间】:2016-02-24 05:44:39
【问题描述】:

我想在 Docker 容器中运行 Junit 测试,如果测试失败,则让容器失败。

在我的 Docker 文件中:

FROM maven:3.2-jdk-7-onbuild
CMD mvn verify

我是从运行 docker compose 命令的 Go CI 服务器开始的。

我看到的是,这启动了一个后台执行线程,并且测试开始运行——Go CI 服务器得到一个 OK——就像 maven 进程已经启动一样。测试以一些失败结束运行,但到那时 Go 服务器已经显示绿色的“一切正常”状态。

部分问题是我需要 EXEC 命令阻止,直到测试完成运行。

我的问题是:如何在 Docker 容器中运行 JUnit 测试并在 JUnit 失败时让容器启动失败?

【问题讨论】:

  • 容器不能失败..因为它是分离的......为什么你喜欢在容器中运行单元测试?听起来您正在尝试运行集成测试...

标签: maven junit docker continuous-integration docker-compose


【解决方案1】:

您想使用docker-compose run 而不是docker-compose up

run 将阻塞,并以与容器中进程相同的退出状态退出。

【讨论】:

  • 谢谢 - 这很有帮助 - 但我没有看到 rundocker-compose run 执行阻止行为。它的工作方式类似于docker-compose up -d(即类似守护进程)
  • 嗯,只有run -d 应该这样做,所以我不确定你看到了什么。你能包括一些输出吗?
猜你喜欢
  • 2015-07-04
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2013-11-08
  • 2019-06-23
  • 1970-01-01
相关资源
最近更新 更多