使用 TFS 发布多个 cobertura 覆盖范围 CI
Publishing multiple cobertura coverages with TFS CI
我有一个 monorepo 项目,是用 lerna 创建的。而且,我使用 Karma+Jasmine 进行单元测试。项目结构如下:
|-packages
| |-package1
| | |-coverage
| | | |-cobertura
| | | | |-coverage.xml // here goes the coverage report in cobertura format
| | | |-Browser1
| | | | |-html // here goes the reports in html (istanbul) for Browser 1
| | | |-Browser2
| | | |-html // here goes the reports in html (istanbul) for Browser 2
| | |-src
| | |-tests
| |-package2
| | |-coverage
| | | |-cobertura
| | | | |-coverage.xml
| | | |-Browser1
| | | | |-html
| | | |-Browser2
| | | |-html
| | |-src
| | |-tests
| .
| .
| .
|-karma.conf.js
测试设置工作正常,并在每个单独的包内生成 html 报告以及 Cobertura 格式的 coverage.xml
。在 TFS CI 中,我有一个“发布代码覆盖率结果”构建步骤来发布具有以下不同选项值的覆盖率结果:
- 代码覆盖工具:
Cobertura
- 摘要文件:
$(System.DefaultWorkingDirectory)\packages\*\coverage\cobertura\coverage.xml
- 报告目录:
$(System.DefaultWorkingDirectory)\packages\*\coverage
(HTML 份报告)
但是,构建步骤警告如下
Multiple file or directory matches were found. Using the first match: C:\MyAgent\path\to\packages\package1\coverage\cobertura\coverage.xml
Multiple file or directory matches were found. Using the first match: C:\MyAgent\path\to\packages\package1\coverage
当然它也只显示一个包的覆盖率结果。有什么方法可以发布所有覆盖率报告而无需在 CI 中为每个包添加构建步骤?
您似乎在使用 Publish Code Coverage Results 任务,这与使用 Publish test results 任务不同。您无法在单个任务中发布多个覆盖率测试结果。
此任务的参数是摘要文件,不像Publish Test Results
的测试结果文件
您的文件结构中有两个 coverage.xml
文件。所以它只会像提到的消息一样使用第一个匹配项。 Source code 的任务供您参考。
您必须在构建管道中为每个包添加另一个发布代码覆盖率结果任务。
我有一个 monorepo 项目,是用 lerna 创建的。而且,我使用 Karma+Jasmine 进行单元测试。项目结构如下:
|-packages
| |-package1
| | |-coverage
| | | |-cobertura
| | | | |-coverage.xml // here goes the coverage report in cobertura format
| | | |-Browser1
| | | | |-html // here goes the reports in html (istanbul) for Browser 1
| | | |-Browser2
| | | |-html // here goes the reports in html (istanbul) for Browser 2
| | |-src
| | |-tests
| |-package2
| | |-coverage
| | | |-cobertura
| | | | |-coverage.xml
| | | |-Browser1
| | | | |-html
| | | |-Browser2
| | | |-html
| | |-src
| | |-tests
| .
| .
| .
|-karma.conf.js
测试设置工作正常,并在每个单独的包内生成 html 报告以及 Cobertura 格式的 coverage.xml
。在 TFS CI 中,我有一个“发布代码覆盖率结果”构建步骤来发布具有以下不同选项值的覆盖率结果:
- 代码覆盖工具:
Cobertura
- 摘要文件:
$(System.DefaultWorkingDirectory)\packages\*\coverage\cobertura\coverage.xml
- 报告目录:
$(System.DefaultWorkingDirectory)\packages\*\coverage
(HTML 份报告)
但是,构建步骤警告如下
Multiple file or directory matches were found. Using the first match: C:\MyAgent\path\to\packages\package1\coverage\cobertura\coverage.xml
Multiple file or directory matches were found. Using the first match: C:\MyAgent\path\to\packages\package1\coverage
当然它也只显示一个包的覆盖率结果。有什么方法可以发布所有覆盖率报告而无需在 CI 中为每个包添加构建步骤?
您似乎在使用 Publish Code Coverage Results 任务,这与使用 Publish test results 任务不同。您无法在单个任务中发布多个覆盖率测试结果。
此任务的参数是摘要文件,不像Publish Test Results
的测试结果文件您的文件结构中有两个 coverage.xml
文件。所以它只会像提到的消息一样使用第一个匹配项。 Source code 的任务供您参考。
您必须在构建管道中为每个包添加另一个发布代码覆盖率结果任务。