Sonar的默认目录布局

时间:2013-02-20 09:43:03

标签: c# plugins sonarqube

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

到目前为止,每件事情都很好。在Sonar中,我看到了我的代码统计信息(LOC等),我也看到了代码违规。没有代码覆盖,但没关系,因为我没有任何测试。

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

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

enter image description here

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

2 个答案:

答案 0 :(得分:1)

  • 首先,您不应该将项目特定设置放在sonar-runner.properties文件中,您应该在解决方案中创建一个“sonar-project.properties”文件并保留在那里

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

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

答案 1 :(得分:0)

我刚刚找到了解决方案。

Fabrice - Sonar团队刚刚让我想到了这个想法,FxCop和Gendarme无法正常工作,因为他们没有任何合作伙伴可以使用。

Here我找到了灵魂。 FxCop只是在Debug文件夹中搜索assamblies,因为我刚刚在release文件夹中有我的assamblies,它无法正常工作。所以我把它们改回Debug(或者sonar.dotnet.buildConfigurations propery)来解决它