dockerunit testing设置
我想为我的产品设置一个unit testing环境。 我有一个在Lua中使用mysql和redis的nginx上构build的web应用程序。 我认为docker工人对这个很好,虽然我对docker工人是新手 。 我的应用程序运行在centos服务器(生产服务器)上。
我打算为mysql,redis和webapp设置不同的容器,然后在我的mac(我的开发机器是MAC)或VMtesting它中写UT应用程序(使用Busted框架对Lua进行unit testing)。 UT应用程序将与docker容器nginx进行通信,nginx将使用容器mysql和redis。 这个好吗 ? 如果是的话,有人可以指导我如何做到这一点? 也许一些很好的链接? 如果不是的话,有什么更好的办法。 我已经尝试过使用stream浪汉,但花了太多的时间,这不应该在我的UT的情况下。
举一个例子,我们如何设置我们的项目模板,你可能会看看phundament/app
及其testing设置。
我们正在使用一个dockerized GitLab安装和一个自定义的runner ,它可以执行docker-compose
。
注意! 跑步者本身在单独的Docker主机上运行。
我们使用docker-compose.yml
来定义堆栈中的服务 ,并对开发和testing进行调整。
CIconfiguration已经过优化,可处理多个隔离堆栈的并发testing,只需指定一个自定义COMPOSE_PROJECT_NAME
即可完成。
关于我们的testing过程的一些深入文档以及关于docker docker-compose
和dockerized CI的有用信息。
- #testing自述文件
- #testing文档
- CIbuild立
- 扩展服务和撰写文件
- Docker-in-Docker的CI?
最后, Travis CI也支持Docker,但是我还没有testing过这个方法。
如果您是基于Docker的CI新手,请查看Drone:
- 官方网站
- Github回购
- 教程
这个解决scheme有一些缺点(如图像的大小),但它会让你离开的理由。