在没有TFS Build的情况下运行SonarQube?

时间:2015-09-04 11:54:24

标签: c# visual-studio-2013 msbuild sonarqube tfs2013

我被要求将另一个项目(C#)整合到SonarQube中。我们使用TFS 2013,SonarQube 5.1.2和Sonar.MSBuild.Runner 1.0。 构建过程模板是旧的(不支持Powershell前后脚本)并且是自定义的。 Visual Studio 2013无法编辑旧的构建过程模板。

我尝试只进行静态代码分析并使用start参数运行MSBuild.SonarQube.Runner,第二次使用end参数运行,而不在其间进行构建(代码覆盖对他们来说似乎并不重要)。但后来我收到错误"No ProjectInfo.xml files were found. Check that the analysis targets are referenced by the MSBuild projects being build"?

我有什么选择将此项目集成到SonarQube中?

1 个答案:

答案 0 :(得分:1)

要从命令行使用MSBuild SonarQube Runner,您必须:

  1. 准备环境:MSBuild.SonarQube.Runner.exe begin /k:SQ_project_key /n:SQ_project_name /v:SQ_project_version(挑选任意SonarQube项目密钥,名称和版本)
  2. 运行您的构建:msbuild
  3. 上传分析结果:MSBuild.SonarQube.Runner.exe end
  4. MSBuild SonarQube Runner与MSBuild集成并在构建项目时收集信息:您必须在beginend调用期间运行构建,否则此强制信息将无法使用并且MSBuild SonarQube Runner将失败并显示您报告的消息。 MSBuild集成与MSBuild版本4.0,12和14兼容。

    关于与TFS XAML版本的集成,如果您使用的是自定义版本,则必须对其进行一些自定义,以便将调用集成到begin和{{1} MSBuild SonarQube Runner的命令。

    TFS 2013支持使用默认构建定义模板开箱即用的代码覆盖率,您只需要在启用覆盖范围的情况下运行测试。如果这对您不起作用,请参阅此链接,了解如何手动传递代码覆盖率结果路径属性:http://docs.sonarqube.org/x/CoBh