在Azure DevOps Server中运行基于Spring Boot和Consul的微服务项目单元测试
1 概述
谈到微服务架构体系,绕不开服务发现这个功能。服务发现机制是简化微服务配置、实现容灾、水平扩缩容、提高运维效率的重要方式。在服务发现工具中,Consul在部署和使用方面与容器结合的天衣无缝,成为越来越多的企业作为服务发现的首选产品。
在微服务开发中,SpringBoot目前是最为广泛使用一个框架。SpringBoot+Consul成为一个比较经典的微服务组合。
作为DevOps软件研发运维一体化的研发管理平台产品,可以完美的支持上述微服务架构。下面我们就以单元测试的示例,来说明在Azure DevOps Server (原名TFS)中如何实现SpringBoot+Consul架构的持续集成(CI)功能。
2. 下载Consul for Windows
https://www.consul.io/downloads.html
3. 在代理中将Consul安装为服务器,自动启动
SpringBoot架构的单元测试中,验证服务发现和注册功能是一个比较基础的测试点。在开发人员的计算机中,通常会手动启动一个consul进程,用来实现本地测试。同样,作为服务器端的持续集成工具,我们需要在Azure DevOps Server的服务器上运行Consul服务。
下面我们使用Windows Server中常用的sc.exe工具创建Consul服务。
sc.exe create "Consul" binPath= "C:\consul_1.5.1_windows_amd64\consul.exe agent -dev" start=auto sc.exe start "Consul"
服务启动以后,我们可以使用浏览器,查看Consul的运行情况:
4. 配置流水线
在Azure DevOps Server中配置流水线,只需要勾选发布“将测试结果发布到流水线中”就可以了;当流水线完成以后,Azure DevOps Server会将测试结果文件(一般是一个xml文件)的结果,自动发布到流水线结果中。
5. 查看单元测试结果
流水线运行完成后,我们就可以在测试页签中查看到单元测试结果,如下图:
同时,如果你下载单元测试结果,可以查看到测试套件的详细信息
6. 常见问题
Consul服务启动不了:
一般原因是已经手动启动了Consul进程,8500端口被占用
IE浏览器查看Consul服务器,提示错误:
Windows Server上自带的IE 11不能正常访问Consul,换成Chrome,问题消失
------------------------------------------------------------
http://www.cnblogs.com/danzhang/ DevOps MVP 张洪君
------------------------------------------------------------