While debugging out .NET code coverage behaving strangely, I just stumbled upon a peculiar project / language parameter: sonar.cs.opencover.it.reportsPaths
In older versions of SonarQube, unit test coverage and integration test coverage were tracked separately and it was necessary to have a sonar.cs.opencover.reportsPaths and a sonar.cs.opencover.it.reportsPaths. However, in SonarQube 6.2, which was released 7 years ago, these metrics were unified and the test type is no longer stored.
As far as I know, both properties currently serve the same purpose, but I recommend using sonar.cs.opencover.reportsPaths (as it is the recommended property).
To add on to @felipebz’s excellent answer, I’ve pinged the right team about this because after this long… I have no idea why these properties still exist except that maybe we forgot to deprecate them.