本文介绍一种在线可视化单元测试方法
测试工具
步骤
修改代码并创建包含多种工具的docker环境
选择在线docker环境 相比在本地搭建docker环境,我更乐意选择在线docker环境docker playground,一来方便,二来其网络速度要快很多。贴张图大家感受一下:
在docker playground上clone官方的docker代码
$ git clone https://github.com/docker/docker.git
- 在docker源码目录下,执行如下命令用以构建Docker镜像
$ cd docker
$ docker build -t docker-unit-testing .
- 启动docker容器
执行如下命令,启动Docker镜像
$ docker run --privileged --rm -ti -p 8080:80 docker-unit-testing /bin/bash
此处,参数privileged使容器有权限访问操作系统的Kernel及设备,参数rm指示从/bin/bash终端退出后清除该容器。
-p 8080:80 80端口是nginx默认的代理端口。
此时,调试代码的docker环境已经准备就绪。
单元测试修改后的代码
- 执行上一步的命令后,cli会跳转到/go/src/github.com/docker/docker目录,此目录下已经包含了docker的源码,但是此源码是官方docker的代码,并不是需要调试的修改后的代码,将其删除,clone自己分支下的代码
# cd ../
# rm -rf docker/
# git clone https://github.com/yu3peng/docker.git
- 切换到要调试的分支
# cd docker/
# git checkout dev
由于goconvey只能用http://localhost:8080访问,我们需要借助Nginx,使其在docker playground上呈现。
- 安装Nginx
# apt-get install -y nginx
- 修改配置监听8080端口
# vim /etc/nginx/nginx.conf
在http配置项中,注释掉最后一行
# include /etc/nginx/sites-enabled/*;
并在下面添加如下内容:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
- Nginx重启
# service nginx restart
- 安装并运行goconvey.
# go get github.com/smartystreets/goconvey
# $GOPATH/bin/goconvey &
在如下页面上点击8080跳转链接
得到goconvey单元测试页面
文档信息
- 本文作者:Yu Peng
- 本文链接:https://www.y2p.cc/2017/05/23/unit-testing-online/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)