如何解决TeamCity通过工件路径将fxcop和coverage报告到构建工件中
| 我正在尝试获取fxCop结果xml和coveragereport.xml,以在构建后发布到工件。 以下是我现在所拥有的,%system.teamcity.build.tempDir%/fxcop-output*/fxcop-result.xml => BuildLog/FxCop
%system.teamcity.build.tempDir%/teamcity*ncover/CoverageReport.xml => BuildLog/Coverage
但是结果目录具有以下格式
BuildLog --> Coverage --> teamcity8681981431807223307ncover --> CoverageReport.xml
BuildLog --> FxCop --> fxcop-output-3810116228914218788 --> fxcop-result.xml
我很好奇在没有包含文件夹结构的情况下如何使它像下面这样。
BuildLog --> Coverage --> CoverageReport.xml
BuildLog --> FxCop --> fxcop-result.xml
谢谢
解决方法
因为工件源定义中有一个星号(*),所以搜索模式可能会抓取多个源文件。
为了区分输出路径中的这些(理论上多个)文件,TeamCity将在输出结构中添加*模式的匹配项,例如teamcity 8681981431807223307 ncover [...]。因此,不可能选择(潜在地)多个文件并将它们存储为一个文件。
答案可能是不同的方法。您可以编写使用TeamCity Build Script Interaction功能的MSBuild脚本,类似于:
<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"
ToolsVersion=\"4.0\">
<ItemGroup>
<FxCopResults Include=\"%system.teamcity.build.tempDir%/fxcop-output*/fxcop-result.xml\" />
<CoverageResults Include=\"%system.teamcity.build.tempDir%/teamcity*ncover/CoverageReport.xml\" />
</ItemGroup>
<Target Name=\"PublishArtifacts\">
<Message Text=\"##teamCity[publishArtifacts \'%(FxCopResults) => BuildLog\\FxCop\'\" />
<Message Text=\"##teamCity[publishArtifacts \'%(CoverageResults) => BuildLog\\Coverage\'\" />
</Target>
最后,在执行了分析构建步骤之后,可以使用带有MSBuild构建运行器的TeamCity构建步骤在此脚本中启动msbuild目标\“ PublishArtifacts \”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。