All C# and VB .NET analyzers present in SonarLint for Visual Studio, in the SonarQube SonarC# Plugin or in the SonarQube SonarVB plugin are being developed here. These analyzers rely on Roslyn 1.3.2 API.
git submodule update --init --recursive
.\scripts\build\dev-build.ps1 -restore -build -test
In general, it is best to run commands from the Visual Studio Developer Command Prompt (if you're using ConEmu, you can setup a console task like cmd /k ""C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" & powershell" -new_console:t:"VsDev 2017" -new_console:d:"C:\Workspace\sonar-dotnet"
- it starts the Developer Console inside the folder C:\Workspace\sonar-dotnet
)
SonarAnalyzer.sln
in the sonaranalyzer-dotnet
subfolderThe following environment variables must be set:
You can run the Unit Tests via the Test Explorer of Visual Studio or using .\scripts\build\dev-build.ps1 test
To run the ITs you will need to follow this pattern:
Developer Command Prompt for VS2017
from the start menuPATH_TO_CLONED_REPOSITORY/sonaranalyzer-dotnet/its
powershell
.\regression-test.ps1
Note: you can run a single rule using the -ruleId parameter (e.g. .\regression-test.ps1 -ruleId S1234
)
If the script ends with SUCCESS: No differences were found!
(or exit code 0), this means the changes you have made haven't impacted any rule.
If the script ends with ERROR: There are differences between the actual and the expected issues.
(or exit code 1),
the changes you have made have impacted one or many issues raised by the rules.
You can visualize the differences using:
cd actual
git diff --cached
If you run the project ReviewDiffs
in debug mode from Visual Studio, it will print in the output windows all places where a difference has been found. From there you can easily navigate between differences (double-click, F4...).
Disclaimer: This program is still very new and the paint is still very wet. It may not work in all situations, but it's easy to update it ??.
PS: This program outputs message in a way that is compatible with the VsColorOutput extension, so that errors are colored in red, and differences are colored like warnings.
Please review all added/removed/updated issue to confirm they are wanted. When this is done run .\update-expected.ps1
to update the list of expected issues.
Note: Integration tests build the code to analyze. If you have an antivirus program on your computer, this may fail with some error messages about an executable file that cannot be open for writing. If this happens, look at the antivirus logs for confirmation, and contact IT team to add an rule to your antivirus program...
From Visual Studio, make sure SonarAnalyzer.Vsix.csproj
is selected as startup project. And then do the following:
F5
to launch the experimental instance of Visual StudioPlease see Contributing Code for details on contributing changes back to the code.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。