【问题标题】:Default directory layout for SonarSonar 的默认目录布局
【发布时间】:2013-02-05 06:22:08
【问题描述】:

我准备 Sonar 来分析我的 C# 项目。我安装了 sonar 和 sonar-runner,还配置了 C# 插件(.NET Core、C# Core、FxCop、Gendarme、Gallio、OpenCover 和 StyleCop)

到目前为止一切正常。在 Sonar 中,我看到了我的代码统计信息(LOC 等),我还看到了代码违规。没有代码覆盖,但没关系,因为我没有任何测试。

问题是我只看到有关 Stylecop 的违规行为,所以它只是显示了一些代码样式问题。但我确信我的应用程序还必须有其他应该被 FxCop 和其他插件检测到的违规行为。

在这张图片中,我们可以看到它显示了来自 StyleCop 的违规行为。我所有的违规行为都来自 StyleCop。

Sonar C# Documentation 中,我读到可能会发生分析成功但发现的违规行为太少的情况,可能是因为组装方向错误。 我给你看我的 sonar-runner.properties,也许这就是我的问题的原因:

#----- Default Sonar server
#sonar.host.url=http://localhost:9000

#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
#sonar.jdbc.driver=org.postgresql.Driver

#----- MySQL
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
#sonar.jdbc.driver=com.mysql.jdbc.Driver

#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
#sonar.jdbc.driver=oracle.jdbc.driver.OracleDriver

#----- Global database settings
#sonar.jdbc.username=sonar
#sonar.jdbc.password=sonar

#----- Default directory layout
sonar.sources=src
sonar.tests=src
sonar.binaries=src

#----- Default source code encoding
#sonar.sourceEncoding=UTF-8

我还想列出我的应用程序结构:

-->ProjectMainFolder
   -->Project.sln
   -->sonar-project.properties

   -->Project1Folder
       -->bin
       -->object
       -->Properties
       -->Project1.csproj
       -->Project1Main.cs

   -->Project2Folder
       -->bin
       -->object
       -->Properties
       -->Project2.csproj
       -->Project2Main.cs

那么问题又来了: 为什么我只看到 StyleCop 违规行为,而没有看到 FxCop、Gendarme 等违规行为?

我还想添加我的 sonar-project.properties:

# optional description
sonar.projectDescription=Project description

# Project identification  
sonar.projectKey=Vendor:Project
sonar.projectVersion= 1.0
sonar.projectName= Project 

# Info required for Sonar  
sources=.
sonar.language=cs
sonar.sourceEncoding=UTF-8

#Core C# Settings  
sonar.dotnet.visualstudio.solution.file=Project.sln

【问题讨论】:

    标签: c# plugins sonarqube


    【解决方案1】:
    • 首先,您不应将项目特定设置放入 sonar-runner.properties 文件中,而应在解决方案中创建一个“sonar-project.properties”文件并将其保留在其中

    • 其次,在这个“sonar-project.properties”文件中,“sonar.sources”应该设置为“.”而且你不应该有“sonar.tests”或“sonar.binaries”

    所有这些都在documentation 中得到了很好的解释,并在sample project 中得到了应用。

    【讨论】:

    • 1.:我在分析之前已经编译好项目文件夹中的所有项目。 2.:它们的组件没有被移动,它们位于每个项目的 bin/release 文件夹中。 3.:解决方案文件夹也没有被移动。一切都在它原来的位置
    • 所以如果我理解正确的话:sonar-runner.properties 仅用于全局配置,而项目特定配置仅在 sonar-project.properties 中处理?我还添加了我的 sonar-project.properties 以查看是否有问题,因为我已经将源设置为“。”
    • 现在我尝试了你提到的 C#-example 项目......我只能看到 stylecop 和 csharpsquid 违规,但看不到 fxcop 和 gendarme 违规,因为它在此示例项目的源代码中说明。设置一定有问题,但我不知道是什么
    • 仔细查看日志并搜索“FxCop”或“Gendarme”:您应该会找到一些提示。
    • 嗯,很明显:“未生成的程序集”意味着您还没有编译项目......所以我的第一个猜测是正确的。
    【解决方案2】:

    我刚刚找到了解决方案。

    Fabrice - Sonar Team 刚刚让我想到,FxCop 和 Gendarme 无法正常工作,因为他们没有可使用的组件。

    Here我找到了灵魂。 FxCop 只是在 Debug 文件夹中搜索组件,并且因为我的组件只是在发布文件夹中,所以它不能正常工作。所以我把它们改回调试(或 sonar.dotnet.buildConfigurations 属性)来解决它

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多