我的代码托管在GitHub中,我在VSTS中使用VSTest运行CI构建,输出代码覆盖率结果。我可以在完成的构建页面中看到这些结果,但能够在我们的GitHub仓库中显示这些结果会很好,就像我们的构建状态徽章和nuget徽章一样。有没有人知道使用VSTS(即内置任务)执行此操作的标准方法,还是我自己需要在脚本中处理这些内容?
答案 0 :(得分:1)
要在README上显示VSTS构建结果(例如代码覆盖率结果),您需要使用自己的脚本来处理它。
主要思想是获取构建日志的相关信息,并在README中提交信息。
Deatil步骤如下:
在CI构建定义的末尾添加PowerShell任务
在powershell脚本中,您需要从构建日志中获取测试结果,格式化并在README中提交信息。最后将更改推送到您的github仓库。 powershell脚本中的函数需要按照以下步骤来实现。
获取相关的构建日志
您可以使用Timeline REST API:
获取当前的构建日志GET https://account.visualstudio.com/project/_apis/build/builds/$(Build.BuildId)/timeline?api-version=4.1
您可以按任务名称(例如VSTest
)搜索某个测试的日志:
{
"id": "407545ba-79a9-55a7-47dd-583380011305",
"parentId": "df143ba0-1c7a-5b21-02e1-d41a394e29c9",
"type": "Task",
"name": "VsTest - testAssemblies",
"startTime": "2018-05-01T08:20:45.3233333Z",
"finishTime": "2018-05-01T08:21:55.3733333Z",
"currentOperation": null,
"percentComplete": null,
"state": "completed",
"result": "succeeded",
"resultCode": null,
"changeId": 14,
"lastModified": "0001-01-01T00:00:00",
"workerName": "WXV-XINDO-12R2",
"order": 4,
"details": null,
"errorCount": 0,
"warningCount": 0,
"url": null,
"log": {
"id": 5,
"type": "Container",
"url": "https://marinaliu.visualstudio.com/f7855e29-6f8d-429d-8c9b-41fd4d7e70a4/_apis/build/builds/2897/logs/5"
},
"task": {
"id": "ef087383-ee5e-42c7-9a53-ab56c98420f9",
"name": "VSTest",
"version": "1.0.86"
}
然后您可以通过网址https://marinaliu.visualstudio.com/f7855e29-6f8d-429d-8c9b-41fd4d7e70a4/_apis/build/builds/2897/logs/5获取VSTest构建日志(如上例所示)。
收集信息并格式化README
您可以获取有关您需求的信息,并格式化README文件。
提交并推送更改到您的github存储库
git checkout $(Build.SourceBranchName)
git add .
git commit -m 'update README'
git push origin $(Build.SourceBranchName)
注意: