声纳TeamCity的dotCover报告路径(TeamCity dotCover report p

2019-08-02 04:40发布

我试图通过TeamCity的构建过程声纳分析纳入。 我有它运行我的单元测试,然后运行dotCover的覆盖面NUnit的生成步骤。

我的下一步是声纳亚军。 当前存在是配置; gallio.mode = dotCover,sonar.gallio.mode = reuseReport但我也需要sonar.gallio.reports.path。

有谁知道路径在上一步骤中产生的dotCover报告?

Answer 1:

我无法找到一个方法来做到这一点使用内置的NUnit的亚军。 我设法得到它的工作通过使用PowerShell的构建步骤手动调用所需的命令。

第一步是到dotCover盖通话中运行通过加利奥NUnit的测试:

& dotCover cover `
/TargetExecutable="C:\Program Files\Gallio\bin\Gallio.Echo.exe" `
/TargetArguments="/report-type:XML /report-name-format:test-report /runner:IsolatedProcess /report-directory:.\Gallio .\Path\Test.dll" `
/Filters="+:WhatToCover" `
/Output=coverage.snapshot

该加利奥测试报告后,可供被声纳与reuseReport回升,TeamCity的自动检测测试结果。

您可以通过TeamCity的编写直接处理覆盖快照服务消息到标准输出:

Write-Host "##teamcity[importData type='dotNetCoverage' tool='dotcover' path='coverage.snapshot']"

要获取覆盖信息到你需要使用dotCover报告命令和通过声纳使用的格式无证报告类型TeamCityXML :

& dotCover report /Source=coverage.snapshot /Output=coverage-report.xml /ReportType=TeamCityXML


Answer 2:

花一定的时间对同一问题,但是随着新的声纳C#插件(2.3版) - 加利奥支持已经下降,但仍需要报告。

要直接回答这个问题,TeamCity的提出dotcover 快照文件到一个临时文件夹名称类似coverage_dotcover27574681205420364801.data (其中数字是随机的)。 所以

步骤如下:

  1. 创建测试和覆盖面的步骤之后,在团队市一个PowerShell构建步骤
    • 你可以使用命令行,如果你喜欢
  2. 获得临时文件夹的完整dotCover 快照名称
  3. 运行dotCover从快照生成HTML报告
    • 注 - 声纳(C#插件V 2.3)仅支持dotCover HTML报告
  4. 通过声纳产生的HTML报告

PowerShell脚本:

$snapshot = Get-ChildItem "%system.teamcity.build.tempDir%" `
     -Filter coverage_dotcover*.data `
     | select -ExpandProperty FullName -First 1

%teamcity.dotCover.home%\dotCover.exe report `
    /ReportType=HTML /Source="$snapshot" `
    /Output="%sonar.coverageReport%"

现在,你可以指定你的蔡司镜头亚军报告sonar.cs.dotcover.reportsPaths='%sonar.coverageReport%'

其中,%sonar.coverageReport%是在TeamCity的一个定义的属性



Answer 3:

这似乎TeamCity的2017年不再创建coverage_dotcover *。数据文件。 相反,它会创建* .dcvr文件。

有可能这需要合并之前,您可以创建报表的多个文件。 其结果是PowerShell的需要更新。

因此,使用由阿列克提供的步骤,只需更新脚本是:

$snapshotfiles = Get-ChildItem "%system.teamcity.build.tempDir%" `
 -recurse -Filter *.dcvr `
 | select -ExpandProperty Name

$snapshots = $snapshotfiles -join ";"

%teamcity.dotCover.home%\dotCover.exe merge /Source=$snapshots 
/Output=dotcovermerge.dcvr

%teamcity.dotCover.home%\dotCover.exe report `
/ReportType=HTML /Source=dotcovermerge.dcvr `
/Output="%sonar.coverageReport%"

然后属性%sonar.coverageReport%可以传递给sonarqube扫描仪。 顺便说一句,你需要创建%sonar.coverageReport%,如“sonarcoverage.html”在TC参数



Answer 4:

从NUnit的/ dotcover生成步骤覆盖报告存储在TeamCity的隐藏的文物目录。 您需要添加作为声纳步骤的工件的依赖。 我不会推荐隐藏的神器路线,但它可以做到的。

这是我用来发布该工作了几周的报告神器路径,然后开始出现问题:

%env.TEAMCITY_DATA_PATH%/system\artifacts\**\%teamcity.build.id%\.teamcity\.NETCoverage\dotCover.snapshot

一旦你的报告,your're家免费虽然。



Answer 5:

虽然它可能会有点麻烦的解决方案,我用两链式建立。

第一个构建配置构建解决方案和运行测试/覆盖,加上节省dotCover快照的假象。

另外搭建了关于第一个神器依赖.teamcity/.NETCoverage/dotCover.snapshot并运行"C:\Program Files (x86)\JetBrains\dotCover\v2.7\bin\dotCover.exe" report /ReportType=HTML /Source="dotCover.snapshot" /Output="dotCover.html" ,并作为最新举措,执行SonarRunner(项目属性文件将指向‘dotCover.html’)。

(带SonarQube 5,dotCover 2.7试过了,TC8)



Answer 6:

下面是我工作。 我对TC 2018年2月4日和dotCover的捆绑版本,所以我认为升级到最新版本,以及这是2019年1月1日并没有产生什么

我不能让代理使用最新版本的dotcover工具,所以我不得不构建该文件夹路径,而不是使用默认%teamcity.dotCover.home%变量。

我也不想用的东西都拿到由构建有删除临时文件夹。

$snapshot_file_list = Get-ChildItem "%system.teamcity.build.tempDir%" -recurse -Filter coverage_dotcover*.data | select -ExpandProperty FullName
Echo "dotCover Snapshot files"
Echo $snapshot_file_list
$joined_snapshot_files = $snapshot_file_list -join ";"
Echo "Merging data files to %system.teamcity.build.checkoutDir%\dotcovermerge.dcvr"
& "%teamcity.agent.tools.dir%\JetBrains.dotCover.CommandLineTools.2019.1.1\dotCover.exe" merge /Source=$joined_snapshot_files /Output="%system.teamcity.build.checkoutDir%\dotcovermerge.dcvr" /LogFile="%system.teamcity.build.checkoutDir%\dotCover.log"
Echo "Generating dotCover Html report"
Echo "%system.teamcity.build.checkoutDir%\%sonar.coverageReport%"
& "%teamcity.agent.tools.dir%\JetBrains.dotCover.CommandLineTools.2019.1.1\dotCover.exe" report /ReportType=HTML /Source="%system.teamcity.build.checkoutDir%\dotcovermerge.dcvr" /Output="%system.teamcity.build.checkoutDir%\%sonar.coverageReport%"


文章来源: TeamCity dotCover report path for Sonar