本文主要介绍demo C#项目的单元测试,包括单元测试的编写,执行,报告,以及jenkins如何执行单元测试,测试报告的生成,覆盖率统计以及sonar分析。

Demo C# 单元测试

https://github.com/wangjunting/Bank.git

Jenkins中sonar配置

(1)Begin Analysis. 指定测试结果文件和单元测试覆盖率文件
这里写图片描述

(2)执行构建编译步骤
这里写图片描述

(3)用vs自带的vstest.console.exe工具进行单元测试,生成trx格式的测试报告;并用vs自带的CodeCoverage.exe工具进行覆盖率的统计,生成覆盖率统计文件VisualStudio.coverage.
具体命令如下:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\amd64\CodeCoverage.exe collect /output:VisualStudio.coverage /verbose "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" /Logger:trx "BankTest\bin\Debug\BankTest.dll" "BankTestT\bin\Debug\BankTestT.dll"

这里写图片描述

(4)转换覆盖率的报告,将VisualStudio.coverage形式的报告转换为vstest.coveragexml形式的报告,命令如下:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\amd64\CodeCoverage.exe analyze /output:"vstest.coveragexml" "VisualStudio.coverage" 

这里写图片描述

(5)End Analysis

这里写图片描述

(6)检查jenkins中结果

这里写图片描述

这里写图片描述

Jenkins中展示测试报告和覆盖率

jenkins只能接受vstest.coveragexml形式的覆盖率报告,且用CodeCoverage.exe工具生成的vstest.coveragexml不能被jenkins解析,所以需要另外单独生成vstest.coveragexml格式的报告

(1)用vstest.console进行单元测试并进行覆盖率的统计
这里写图片描述

(2)用CoverageCoverter工具1将generatedCoverageFile2 转换成vstest.coveragexml文件
这里写图片描述

(3)发布测试结果报告
这里写图片描述

(4)立即构建之后在jenkins中检查结果
这里写图片描述


  1. 1.工具以及代码见 https://github.com/wangjunting/CoverageCoverter
  2. 2.generatedCoverageFile是类似于wangjunting_WANGJUNTING 2017-09-04 17_57_33.coverage的文件
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐