6

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

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

4

2 回答 2

2

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

我们正在使用带有自定义运行器的 dockerized GitLab安装,它能够执行。docker-compose

笔记!运行器本身在单独的 Docker 主机上运行。

我们用于在堆栈docker-compose.yml中定义服务,并针对开发测试进行调整。

CI 配置经过优化以处理隔离堆栈的多个并发测试,这只需通过指定自定义COMPOSE_PROJECT_NAME.

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

最后,Travis CI也支持 Docker 有一段时间了,但我根本没有测试过这种方法。

于 2016-01-04T23:36:21.300 回答
1

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

这个解决方案有一些缺点(比如图像的大小),但它会让你摆脱困境。

于 2016-01-04T10:02:14.950 回答