docker 单元测试设置

docker unit test setup

我想为我的产品设置一个单元测试环境。我在 Lua 中有一个基于 nginx 构建的 Web 应用程序,它使用 mysql 和 redis。 虽然我是 docker 的新手,但我认为 docker 对此有好处。我的应用程序在 centos 服务器(生产服务器)上运行。

我计划为 mysql、redis 和 webapp 设置不同的容器,然后在我的 mac(我的开发)中编写 UT 应用程序(使用 Busted 框架对 Lua 进行单元测试) machine 是 MAC) 或 VM 来测试它。 UT 应用程序将与 docker 容器 nginx 通信,nginx 将使用容器 mysql 和 redis。这个好吗 ?如果是,有人可以指导我如何做到这一点吗?也许有些好link?如果没有,还有什么更好的方法。我已经尝试过使用 vagrant,但这花费了太多时间,这不应该出现在我的 UT 案例中。

如果您是 Docker 基于 CI 的新手,请查看 Drone:

此解决方案存在一些缺点(例如图像大小),但它会让您脱离困境。

有关我们如何设置项目模板的示例,您可以查看 phundament/app 及其测试设置。

我们正在使用 dockerized GitLab installation with a customized runner,它能够执行 docker-compose.

Note! The runner itself is running on a separate Docker host.

我们正在使用 docker-compose.yml 来定义 services in a stack with adjustments for development and testing

CI configuration 已优化以处理独立堆栈的多个并发测试,这只需指定自定义 COMPOSE_PROJECT_NAME.

关于我们的测试过程的一些 in-depth 文档以及关于 docker-compose 和 dockerized CI 的有用信息。

终于,Travis CI也支持Docker了一段时间了,但我完全没有测试过这种方法。