Docker 单元测试设置

我想为我的产品设置一个单元测试环境。我有一个基于 Lua 的 nginx 网络应用程序,它使用 MySQL 和 Redis。我认为 Docker 对此很好,尽管我是 Docker 的新手。我的应用程序在 centos 服务器上运行(生产服务器)。

我计划为 mysql、redis 和 webapp 设置不同的容器,然后在我的 mac 上编写 UT 应用程序(使用 Busted 框架进行 Lua 的单元测试),或者在虚拟机中进行测试。UT 应用程序将与 docker 容器 nginx 进行通信,而 nginx 将使用容器 mysql 和 redis。这个方案好吗?如果是,有人可以指导我如何做吗?也许有一些好的链接?如果不是,有什么更好的办法?我已经尝试过使用 vagrant,但那花费太多时间,在我的 UT 场景中不应该这样做。

点赞
用户788077
用户788077

如果您是初次接触基于 Docker 的 CI,请看看 Drone:

这种解决方案存在一些缺点(如镜像大小),但它可以让您起步。

2016-01-04 10:02:14
用户291573
用户291573

为了让大家了解我们如何设置我们的项目模板,您可以看一下phundament/app及其测试设置。

我们使用了一个容器化的 GitLab 安装,配合一个自定义的运行程序,它能够执行 docker-compose

注意!这个运行程序本身是运行在一个单独的 Docker 主机上的。

我们使用docker-compose.yml来定义服务,其中包括了适应于开发测试 的一些调整。

CI配置经过优化,可处理多个独立堆栈的并发测试,这只是通过指定自定义的COMPOSE_PROJECT_NAME来完成的。

关于我们的测试过程以及有关 docker-compose 和容器化 CI 的有用信息,我们还提供了一些详细的文档。

最后,Travis CI也支持 Docker 已经有一段时间了,但我还没有完全测试过这种方法。

2016-01-04 23:36:21