我准备 Sonar 来分析我的 C# 项目。我安装了 sonar 和 sonar-runner,还配置了 C# 插件(.NET Core、C# Core、FxCop、Gendarme、Gallio、OpenCover 和 StyleCop)
到目前为止一切正常。在 Sonar 中,我看到了我的代码统计信息(LOC 等),我还看到了代码违规。没有代码覆盖,但没关系,因为我没有任何测试。
问题是我只看到有关 Stylecop 的违规行为,所以它只是显示了一些代码样式问题。但我确信我的应用程序还必须有 FxCop 和其他插件应该检测到的其他违规行为。
在这张图片中,我们可以看到它显示了来自 StyleCop 的违规行为。我所有的违规行为都来自 StyleCop。
在Sonar C# 文档中,我读过可能会发生分析成功但发现的违规行为太少的情况,这可能是因为组装方向错误。我向您展示我的 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、宪兵等违规行为?
我还想添加我的 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