Sonar.Coverage.Exclusions not excluding as expected based on file regex pattern

scanner
exclusions
csharp
coverage

(Mihai Neagoe) #1

SonarQube version: 7.0.0.36138

Thank you for looking at my report.

Directory is not excluded from code coverage calculations based on the regex pattern applied to the property sonar.coverage.exclusions. The same regex pattern is set in the sonar.exclusions property, which successfully matches the directory and excludes it entirely from any calculation.

This is undesirable as I still want the tests to follow the same rules as the rest of the code, but not be included in the overall code coverage.

Steps to reproduce/error observed:

Scenario 1
Have a directory called test and set the regex pattern
Set the regex to in sonar.coverage.exclusions : file:**/test/**
Expected: to remove the directory from code coverage calculation
Actual: Directory not excluded from cove coverage

Scenario 2
Same regex pattern set in sonar.exclusions: file:**/test/**
Expected: To remove the directory from all code calculations
Actual: Is working as expected, the directory is removed from all calculations.

Let me know if I need to provide any other relevant logs or material in order to diagnose and solve the issue.

#bug:fault


(G Ann Campbell) #2

Hi,

There should be a few lines in your analysis log about how your exclusion settings are handled. Can you share those?

Also, where are you putting these settings? On the analysis command line? In the UI? In a settings file somewhere?

Ann


(Mihai Neagoe) #3

Hello,

The settings are set in the UI. I don’t see anything in the logs about calculating exclusions, unless I’m looking at the wrong log file. I’ve set the logs to Debug and downloaded the Compute Engine log:

2018.08.22 12:27:41 INFO  ce[AWVhmszB7e7-9RhP0Omq][o.s.c.t.CeWorkerImpl] Execute task | project=ACH | type=REPORT | id=AWVhmszB7e7-9RhP0Omq | submitter=admin
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Extract report | time=1162ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist scanner context | time=4ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Generate analysis UUID | time=0ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Load analysis metadata | time=5ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Initialize | time=0ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Verify billing | time=0ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Build tree of components | time=79ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Validate project | time=7ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Load quality profiles | time=53ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Load Quality gate | time=3ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.PeriodResolver] Compare to previous version (2018-08-22)
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Load differential periods | time=8ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.f.FileMoveDetectionStep] Either no files added or no files removed. Do nothing.
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Detect file moves | time=8ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Load inner file and in project duplications | time=48ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.d.CrossProjectDuplicationStatusHolderImpl] Cross project duplication is disabled because it's disabled in the analysis report
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute cross project duplications | time=0ms
2018.08.22 12:27:42 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute size measures | time=65ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute new coverage | time=193ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute coverage measures | time=1ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute comment measures | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Copy custom measures | time=2ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute duplication measures | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute duplication data measures | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute size measures on new code | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute language distribution | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute test measures | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute complexity measures | time=4ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Load measure computers | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   Execution time for each component visitor:
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - LoadComponentUuidsHavingOpenIssuesVisitor | time=2ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - IntegrateIssuesVisitor | time=343ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - CloseIssuesOnRemovedComponentsVisitor | time=1ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - MaintainabilityMeasuresVisitor | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - NewMaintainabilityMeasuresVisitor | time=4ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - ReliabilityAndSecurityRatingMeasuresVisitor | time=2ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - NewReliabilityAndSecurityRatingMeasuresVisitor | time=3ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - LastCommitVisitor | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.ExecuteVisitorsStep]   - MeasureComputersVisitor | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Execute component visitors | time=368ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute measure variations | time=161ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute Quality Gate measures | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Compute Quality profile measures | time=0ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Generate Quality profile events | time=1ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Generate Quality gate events | time=1ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist components | time=15ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist analysis | time=2ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist analysis properties | time=1ms
2018.08.22 12:27:43 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist measures | time=63ms
2018.08.22 12:27:45 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist live measures | time=1921ms
2018.08.22 12:27:45 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist issues | time=31ms
2018.08.22 12:27:45 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist project links | time=6ms
2018.08.22 12:27:45 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist events | time=5ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist sources | time=346ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist tests | time=3ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Persist cross project duplications index | time=0ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Enable analysis | time=4ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Update last usage date of quality profiles | time=2ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.KeepOneFilter] -> Keep one snapshot per day between 2018-07-25 and 2018-08-21
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AWP0Jm54EV7H7hTFLQct: 
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.KeepOneFilter] -> Keep one snapshot per week between 2017-08-23 and 2018-07-25
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AWP0Jm54EV7H7hTFLQct: 
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.KeepOneFilter] -> Keep one snapshot per month between 2013-08-28 and 2017-08-23
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AWP0Jm54EV7H7hTFLQct: 
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.KeepWithVersionFilter] -> Keep analyses with a version prior to 2016-08-24
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AWP0Jm54EV7H7hTFLQct: 
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.DeleteAllFilter] -> Delete data prior to: 2013-08-28
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AWP0Jm54EV7H7hTFLQct: 
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.d.purge.PurgeDao] <- Delete aborted builds
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Purge db | time=59ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.IndexAnalysisStep] Call org.sonar.server.measure.index.ProjectMeasuresIndexer@30ccfe20
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.IndexAnalysisStep] Call org.sonar.server.component.index.ComponentIndexer@43bf243d
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.IndexAnalysisStep] Call org.sonar.server.issue.index.IssueIndexer@5bc6f088
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.IndexAnalysisStep] Call org.sonar.server.permission.index.PermissionIndexer@6091542
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.p.s.IndexAnalysisStep] Call org.sonar.server.test.index.TestIndexer@6313eebc
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Index analysis | time=264ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Send issue notifications | time=1ms
2018.08.22 12:27:46 DEBUG ce[AWVhmszB7e7-9RhP0Omq][o.s.s.c.t.s.ComputationStepExecutor] Publish task results | time=0ms
2018.08.22 12:27:46 INFO  ce[AWVhmszB7e7-9RhP0Omq][o.s.c.t.CeWorkerImpl] Executed task | project=ACH | type=REPORT | id=AWVhmszB7e7-9RhP0Omq | submitter=admin | time=5488ms

(G Ann Campbell) #4

Hi,

These are the server-side logs of analysis report processing. I was looking for the analysis logs.

Ann


(Mihai Neagoe) #5
[13:12:27] **[Step 5/5]* INFO: Source encoding: UTF-8, default locale: en_US*
[13:12:27] **[Step 5/5]* INFO: Index files*
[13:12:28] **[Step 5/5]* INFO: 24 files indexed*
[13:12:28] **[Step 5/5]* INFO: Quality profile for cs: Sonar way*
[13:12:28] **[Step 5/5]* INFO: Excluded sources for coverage:*
[13:12:28] **[Step 5/5]* INFO: file:**/test/***
[13:12:29] **[Step 5/5]* INFO: Sensor C# Properties [csharp]*
[13:12:29] **[Step 5/5]* INFO: Sensor C# Properties [csharp] (done) | time=2ms*
[13:12:29] **[Step 5/5]* INFO: Sensor SonarJavaXmlFileSensor [java]*

This is a part of the analysis log, specifically for the exclusion. The same path excludes the folder correctly but only if I set the sonar.exclusions variable. If I set sonar.coverage.exclusions with the same file path, it doesn’t exclude the code from coverage calculation.


(G Ann Campbell) #6

Hi,

These are the logs I was looking for. Could you also add:

  • Which analyzer, and version you’re using
  • And for thoroughness, what your analysis command(s) look like

?

Ann


(Mihai Neagoe) #7
[13:41:38][Step 5/5] SonarScanner for MSBuild 4.1.1
[13:41:39][Step 5/5] INFO: SonarQube Scanner 3.1.0.1141
[13:41:39][Step 5/5] INFO: Java 1.8.0_181 Oracle Corporation (64-bit)
[13:41:39][Step 5/5] INFO: Linux 4.4.0-1065-aws amd64
[13:41:39][Step 5/5] INFO: SONAR_SCANNER_OPTS=-Xmx1024m
[13:41:39][Step 5/5] INFO: User cache: /root/.sonar/cache
[13:41:39][Step 5/5] INFO: SonarQube server 7.0.0

mono SonarScanner.MSBuild.exe begin /k:"%env.SonarProjectName%" /v:"%build.number%" /d:sonar.cs.opencover.reportsPaths="./coverage-results/results.opencover.xml"
mono SonarScanner.MSBuild.exe end

Hope I encompassed the correct information. Let me know if you need something else.


(Mihai Neagoe) #9

Hello @ganncamp,

Any updates on this issue?

Thank you,
Mihai


(Julien Henry) #11

Hi,

Could you please try to remove the file: prefix in your exclusions patterns? Also try to pass the exclusion on the command line side, just to see if that help.