TeamCity - MSBuild 代码分析
Posted
技术标签:
【中文标题】TeamCity - MSBuild 代码分析【英文标题】:TeamCity - MSBuild Code Analysis 【发布时间】:2014-10-16 05:40:53 【问题描述】:我已经使用 Jenkins CI 几年了,我想学习 TeamCity。
在 Jenkins 中,我通过对我的 .net 项目启用代码分析,然后告诉 Violations 插件在哪里可以找到代码分析 XML 文件来跟踪 FxCop 问题,即 MSBUILD 将在构建中放置一个名为 [项目名称].CodeAnalysisLog.xml 的文件输出目录,您可以使用 **/*/*CodeAnalysisLog.xml 之类的内容通过 Violations 插件查找这些文件。
TeamCity 有自己的 FxCop 运行器,但我不想再次运行 FxCop,因为 MSBuild 已经为我完成了。
我只想能够告诉 TeamCity 在哪里可以找到 XML 文件并让它生成趋势图,就像 Jenkins 使用 Violations 插件一样。
我对 StyleCop、jsLint 和 cssLint 也有类似的问题。作为生成的一部分运行的 MSBuild 生成任务或批处理命令会生成 XML 输出。我想用这个输出来创建趋势图。
【问题讨论】:
你能告诉你如何在编译中实现 JSLint 和 CSSLint 并生成 XML 输出吗?我为 FxCops 和 StyleCop 做过。但是没有为 JSLint 和 CSSLint 找到合适的 nuget 包 可能有几种方法可以进行 JS 和 CSS linting。我使用 npm 安装 jsHint 和 cssLint,然后运行(我使用“jsHint”而不是“jsLint”,因为这是 Visual Studio Web Essentials 过去使用的)。对于 cssLint,我使用以下命令生成 XML:csslint --format=lint-xml --ignore=%ignoreRules% %cssFile% > %xmlOutputFile% || EXIT 0
。对于 jsHint,我使用以下命令生成 XML:jshint --reporter=jslint %jsDirectory% > %xmlOutputFile% || EXIT 0
.
【参考方案1】:
据我所知,TeamCity 在报告方面与 Jenkins 不同,因为它采用 html 格式。这就是我们必须为代码质量分析产品做的事情——将我们的 XML 报告转换为 TeamCity 的 HTML。因此,与我们拥有的 Jenkins 插件不同,当与 TeamCity 集成时,我们无法进行违规趋势报告。我们没有查看在过去几年中是否有 TeamCity 的变化可以启用 XML 报告输入。
【讨论】:
对于 Jenkins,它只需要 XML 并生成趋势图。你是说对于 TeamCity,我需要自己从 XML 生成报告,然后让 TeamCity 使用它? 是的,您需要先将该 XML 转换为 HTML,然后再导入 TEamCity。这就是我们所做的。 唉,要是 Jenkins 能像 TeamCity 一样检测到 Git 分支就好了。在Jenkins中获取下拉列表分支构建参数需要太多配置。以上是关于TeamCity - MSBuild 代码分析的主要内容,如果未能解决你的问题,请参考以下文章
MSBUILD : 错误 MSB1008: teamcity 中只能指定一个项目
TeamCity/.sqlproj 通过 MSBuild 构建——失败
Visual Studio 2012 解决方案 TeamCity 中的 MSBuild