Search code examples
msbuildsonarqubesonarqube-msbuild-runner

Error on MSBuild.SonarQube.Runner.exe end command for Code Coverage Results


I’m trying to run C# Code Coverage Results Import but get error on the last step. I created .coveragexml file (named test.coveragexml) via visual studio (TEST -Analyze Code Coverage- All Tests), saved it in the project directory. Run the following command at CMD:

  1. C:\SonarQube\bin\MSBuild.SonarQube.Runner.exe begin /k:MyProject /n: MyProject /v:1.0 /d:sonar.cs.vscoveragexml.reportsPaths=D:\sTFS\24115\Sources\ MyProject \Source*.coveragexml /d:sonar.verbose=true
  2. Build (via visual studio)
  3. C:\SonarQube\bin\MSBuild.SonarQube.Runner.exe end

For the last step, I’m getting this error:

10:09:29 AM  ERROR: Error during Sonar runner execution
10:09:29 AM  ERROR: Unable to execute Sonar
10:09:29 AM  ERROR: Caused by: Error while parsing the XML file: D:\sTFS\24115\S
ources\SystemMapping\Source\test.coveragexml
10:09:29 AM  ERROR: Caused by: Unexpected character '?' (code 65533 / 0xfffd) in
 prolog; expected '<'
10:09:29 AM   at [row,col {unknown-source}]: [1,1]
10:09:29 AM  ERROR:
10:09:29 AM  ERROR: To see the full stack trace of the errors, re-run SonarQube
Runner with the -e switch.
10:09:29 AM  ERROR: Re-run SonarQube Runner using the -X switch to enable full d
ebug logging.
10:09:29 AM  The sonar-runner did not complete successfully
Post-processing failed. Exit code: 1    

Cannot find any character '?' at the file... From the log:

M  10:09:29.021 INFO  - Sensor org.sonar.plugins.csharp.CSharpSensor@5945ac done: 12370 ms
10:09:29 AM  10:09:29.021 INFO  - Sensor org.sonar.plugins.csharp.CSharpCodeCoverageProvider$CSharpCoverageReportImportSensor@ed32df...
10:09:29 AM  10:09:29.104 INFO  - Parsing the Visual Studio coverage XML report D:\sTFS\24115\Sources\SystemMapping\Source\test.coveragexml
10:09:29 AM  10:09:29.110 DEBUG - Release semaphore on project : org.sonar.api.resources.Project@101ba81[id=37975,key=SystemMapping,qualifier=TRK], with key batch-SystemMapping
10:09:29 AM  INFO: ------------------------------------------------------------------------
10:09:29 AM  INFO: EXECUTION FAILURE
10:09:29 AM  INFO: ------------------------------------------------------------------------
10:09:29 AM  Total time: 21.544s
10:09:29 AM  Final Memory: 13M/121M
10:09:29 AM  INFO: ------------------------------------------------------------------------
10:09:29 AM  Process returned exit code 1
10:09:29 AM  Creating a summary markdown file...
Process returned exit code 1

Solution

  • Finally I succeeded to create code coverage analysis!

    1. Moved the MSBuild.SonarQube.Runner to the same root directory as my project
    2. Switched to OpenCover coverage xml and worked by the command specify here -
    3. Ran the command from Visual Studio Command Prompt

    Here is the commands I execute (with 2 unit test dll’s): D:\SonarQube\bin\MSBuild.SonarQube.Runner.exe begin /k:MyProject /n: MyProject /v:1.0 /d:sonar.cs.opencover.reportsPaths="D:\SonarQube\6.5\NP\ MyProject \Source\opencover*.xml" /d:sonar.verbose=true

    Build MyProject

    "C:\OpenCover\OpenCover.Console.exe" -output:"D:\SonarQube\6.5\NP\ MyProject \Source\opencover1.xml" -register:user -target:"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" -targetargs:"D:\SonarQube\6.5\NP\ MyProject \Source\ MyProject.Test\bin\Debug\ MyProject.Test.dll"

    "C:\OpenCover\OpenCover.Console.exe" -output:"D:\SonarQube\6.5\NP\ MyProject \Source\opencover2.xml" -register:user -target:"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" -targetargs:"D:\SonarQube\6.5\NP\ MyProject \Source\ MyProject.test\bin\Debug\ MyProject.test.dll"

    D:\SonarQube\bin\MSBuild.SonarQube.Runner.exe end > log.txt

    Hope it will help others :)