I have a .net core solution with two xunit test projects. The build runs on Azure DevOps pipeline and I want to publish the test coverage to a SonarQube (Community) server.
I have basically followed this blog post and it is almost working, the issue is that I only see the coverage of the last test project, not both of them.
I may be wrong but from this issue I guessed that I need to merge my *.coveragexml files before sending to SonarQube.
I have seen that you can merge coverage files with tools like Coverlet but when I tried (from this help page) I got some errors (like Could not find file xunit.runner.reporters.netcoreapp10_101ce3bf-0896-4b2a-9f9e-67d8c0b742e6.pdb)
Before running into this rabbit hole I would prefer to know if I really need to merge my .coveragexml files... and if so can I do it with the regular tools or do I need others like Coverlet...
Cheers
I finally found the issue. You don't need to merge the .coveragexml files, the last version of the SonarScanner.MSBuild.exe actually finds all the .coveragexml files. I looked more closely in the logs and found multiple lines like these:
INFO: Sensor C# Tests Coverage Report Import [csharp]
INFO: Parsing the Visual Studio coverage XML report [...]
INFO: Adding this code coverage report to the cache [...]
INFO: Parsing the Visual Studio coverage XML report [...]
INFO: Adding this code coverage report to the cache [...]
So the .coveragexml files were found and published to sonar.
The reported coverage was false because I needed to add a
<DebugType>Full</DebugType>
In a project. The odd thing is that the other projects reported some code coverage without this property set in the .csproj so I thought I didn't need it.
So if the reported coverage seems false, try adding this property in the csproj.