A measure can be set only once for a specific Component

  • Developer Edition
  • Version 9.9.0.65466
  • Azure DevOps integration (we use the sonar tasks in our pipelines)

We have a number of typescript-based React projects where I am in the process of updating our pipelines to use Node 18. We are using the Node.js tool installer task to specify the node version (18.x). This has been painless for all projects but one.

One PR branch throws the error below on the Publish Quality Gate Result task. I’ve created several iterations of the PR with the same results. All other PRs in this project have no issues so long as we do not use the Node.js tool installer.

I know I’m not the first to encounter this problem, but I have not been able to find how to troubleshoot. I cannot find any duplicate test result files, and the setup on this project is identical to others where we do not have this issue. I’m very much at a loss.

2023.04.26 11:27:26 INFO  ce[][o.s.c.t.CeWorkerImpl] Execute task | project=SurveyBuilder | type=REPORT | pullRequest=11997 | id=AYe-ZB_w238lEnl9PdI7 | submitter=kshanmug
2023.04.26 11:27:31 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Extract report | status=SUCCESS | time=4860ms
2023.04.26 11:27:31 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Persist scanner context | status=SUCCESS | time=31ms
2023.04.26 11:27:31 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Propagate analysis warnings from scanner report | status=SUCCESS | time=29ms
2023.04.26 11:27:31 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Generate analysis UUID | status=SUCCESS | time=0ms
2023.04.26 11:27:31 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Load analysis metadata | status=SUCCESS | time=36ms
2023.04.26 11:27:31 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Initialize | status=SUCCESS | time=38ms
2023.04.26 11:27:32 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Build tree of components | components=22 | status=SUCCESS | time=653ms
2023.04.26 11:27:32 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Validate project | status=SUCCESS | time=13ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Load quality profiles | status=SUCCESS | time=1024ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Load file hashes and statuses | status=SUCCESS | time=8ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Load Quality gate | status=SUCCESS | time=10ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Load new code period | status=SUCCESS | time=0ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Detect file moves | status=SUCCESS | time=0ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Detect file moves in Pull Request scope | reportFiles=10 | dbFiles=1629 | movedFiles=0 | addedFiles=10 | status=SUCCESS | time=59ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Load duplications | duplications=27 | status=SUCCESS | time=542ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute cross project duplications | status=SUCCESS | time=0ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute size measures | status=SUCCESS | time=4ms
2023.04.26 11:27:33 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute new coverage | status=SUCCESS | time=0ms
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute coverage measures | status=SUCCESS | time=639ms
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute comment measures | status=SUCCESS | time=1ms
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute duplication measures | status=SUCCESS | time=3ms
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute size measures on new code | status=SUCCESS | time=4ms
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute language distribution | status=SUCCESS | time=0ms
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.s.ComputationStepExecutor] Compute test measures | status=FAILED | time=0ms
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Webhooks | globalWebhooks=0 | projectWebhooks=0 | status=SUCCESS | time=15ms
2023.04.26 11:27:34 ERROR ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Execution of task class com.sonarsource.F.D.d failed
java.lang.NullPointerException: Cannot invoke "org.sonar.db.protobuf.DbProjectBranches$PullRequestData.getBranch()" because "other" is null
	at org.sonar.db.protobuf.DbProjectBranches$PullRequestData$Builder.mergeFrom(DbProjectBranches.java:789)
	at org.sonar.db.protobuf.DbProjectBranches$PullRequestData.newBuilder(DbProjectBranches.java:615)
	at com.sonarsource.F.D.d.A(Unknown Source)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at com.sonarsource.F.D.d.A(Unknown Source)
	at com.sonarsource.F.D.d.B(Unknown Source)
	at org.sonar.ce.async.SynchronousAsyncExecution.addToQueue(SynchronousAsyncExecution.java:27)
	at com.sonarsource.F.D.d.A(Unknown Source)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at com.sonarsource.F.D.d.finished(Unknown Source)
	at org.sonar.ce.task.projectanalysis.api.posttask.PostProjectAnalysisTasksExecutor.executeTask(PostProjectAnalysisTasksExecutor.java:102)
	at org.sonar.ce.task.projectanalysis.api.posttask.PostProjectAnalysisTasksExecutor.finished(PostProjectAnalysisTasksExecutor.java:93)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeListener(ComputationStepExecutor.java:89)
	at org.sonar.ce.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:61)
	at org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:75)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.executeTask(CeWorkerImpl.java:212)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.run(CeWorkerImpl.java:194)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:160)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$TrackRunningState.get(CeWorkerImpl.java:135)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:87)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:53)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Pull Request decoration | status=FAILED | time=69ms
2023.04.26 11:27:34 INFO  ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Report branch Quality Gate status to devops platforms | status=SUCCESS | time=0ms
2023.04.26 11:27:37 ERROR ce[AYe-ZB_w238lEnl9PdI7][o.s.c.t.CeWorkerImpl] Failed to execute task AYe-ZB_w238lEnl9PdI7
org.sonar.ce.task.projectanalysis.component.VisitException: Visit failed for Component {key=SurveyBuilder,type=PROJECT} 
	at org.sonar.ce.task.projectanalysis.component.VisitException.rethrowOrWrap(VisitException.java:44)
	at org.sonar.ce.task.projectanalysis.component.PathAwareCrawler.visit(PathAwareCrawler.java:52)
	at org.sonar.ce.task.projectanalysis.step.UnitTestMeasuresStep.execute(UnitTestMeasuresStep.java:68)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeStep(ComputationStepExecutor.java:79)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeSteps(ComputationStepExecutor.java:70)
	at org.sonar.ce.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:57)
	at org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:75)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.executeTask(CeWorkerImpl.java:212)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.run(CeWorkerImpl.java:194)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:160)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$TrackRunningState.get(CeWorkerImpl.java:135)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:87)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:53)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.UnsupportedOperationException: a measure can be set only once for a specific Component (key=SurveyBuilder), Metric (key=tests). Use update method
	at org.sonar.ce.task.projectanalysis.measure.MapBasedRawMeasureRepository.add(MapBasedRawMeasureRepository.java:71)
	at org.sonar.ce.task.projectanalysis.measure.MeasureRepositoryImpl.add(MeasureRepositoryImpl.java:90)
	at org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor.addNewMeasure(FormulaExecutorComponentVisitor.java:164)
	at org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor.processNotLeaf(FormulaExecutorComponentVisitor.java:137)
	at org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor.process(FormulaExecutorComponentVisitor.java:127)
	at org.sonar.ce.task.projectanalysis.formula.FormulaExecutorComponentVisitor.visitProject(FormulaExecutorComponentVisitor.java:95)
	at org.sonar.ce.task.projectanalysis.component.PathAwareCrawler.visitNode(PathAwareCrawler.java:96)
	at org.sonar.ce.task.projectanalysis.component.PathAwareCrawler.visitImpl(PathAwareCrawler.java:73)
	at org.sonar.ce.task.projectanalysis.component.PathAwareCrawler.visit(PathAwareCrawler.java:50)
	... 20 common frames omitted

Hi,

Welcome to the community!

Can you add -Dsonar.scanner.dumpToFile=[file path] to your analysis command line for this project so we can take a look at the values being fed into analysis?

If the problem’s not obvious to you from the file contents, please post them here, (code formatted :smiley: and) redacted as necessary.

 
Ann

I added the dumpToFile switch to the Prepare Analysis step. This triggers “simulation mode” apparently?

INFO: Simulation mode. Configuration written to E:\BuildAgents\Agent1\_work\29\scanner.log
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------

When I look at the log created, I’m not seeing any duplicate project keys. There is one reference to sonar.projectKey=SurveyBuilder, and the rest of the project keys are tied to specific ids.

Full log with file lists redacted:

## Generated by a SonarScanner
#Tue May 02 10:38:50 CDT 2023
java.specification.version=17
java.vendor.url=https\://java.oracle.com/
sun.boot.library.path=C\:\\Program Files\\Java\\jdk-17\\bin
sun.java.command=org.sonarsource.scanner.cli.Main -Dsonar.scanAllFiles\=true -Dsonar.login\=e677b6f94738d92aff190e81701ad1867322f734 -Dproject.settings\=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\sonar-project.properties --from\=ScannerMSBuild/5.13
sonar.sourceEncoding=windows-1252
jdk.debug=release
75F63E9C-3B4A-415C-A1C1-558528CB44F5.sonar.projectKey=SurveyBuilder\:75F63E9C-3B4A-415C-A1C1-558528CB44F5
java.vm.specification.vendor=Oracle Corporation
java.specification.name=Java Platform API Specification
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.projectKey=SurveyBuilder\:D611CF72-5F2C-486A-B648-D7C4F5D3F7B1
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.projectName=API.UnitTests
sonar.projectVersion=1.0
java.runtime.version=17.0.6+9-LTS-190
sonar.pullrequest.provider=vsts
sonar.scanner.appVersion=5.13
602C1038-CF3F-49C1-B9E9-36274D687F0F.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod2
sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.sourceEncoding=utf-8
java.io.tmpdir=C\:\\Windows\\SERVIC~2\\NETWOR~1\\AppData\\Local\\Temp\\
java.version=17.0.6
6EF3BA5B-0A38-4A68-80D6-B5C84916389F.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\0","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\10","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\15","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\20","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\26","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\32","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\4","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\7","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\9"
java.vm.specification.name=Java Virtual Machine Specification
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\19"
native.encoding=Cp1252
java.library.path=C\:\\Program Files\\Java\\jdk-17\\bin;C\:\\windows\\Sun\\Java\\bin;C\:\\windows\\system32;C\:\\windows;E\:\\BuildAgents\\Agent1\\_work\\_tool\\node\\18.13.0\\x64;E\:\\BuildAgents\\Agent1\\externals\\git\\cmd;E\:\\BuildAgents\\Agent1\\externals\\git\\mingw64\\bin;C\:\\Program Files\\Common Files\\Oracle\\Java\\javapath;C\:\\Python311\\Scripts\\;C\:\\Python311\\;C\:\\Python27\\;C\:\\Python27\\Scripts;C\:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C\:\\windows\\system32;C\:\\windows;C\:\\windows\\System32\\Wbem;C\:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C\:\\Program Files\\dotnet\\;E\:\\Program Files\\Git\\Git\\cmd;C\:\\ProgramData\\chocolatey\\bin;C\:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\170\\Tools\\Binn\\;C\:\\Program Files\\Microsoft SQL Server\\130\\Tools\\Binn\\;C\:\\Program Files\\Microsoft SQL Server\\150\\Tools\\Binn\\;C\:\\Tools\\;C\:\\Program Files\\nodejs\\;C\:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\Microsoft\\WindowsApps;C\:\\Windows\\ServiceProfiles\\NetworkService\\.dotnet\\tools;.
java.vendor=Oracle Corporation
sonar.pullrequest.cache.basepath=E\:\\BuildAgents\\Agent1\\_work\\29\\s
sonar.testExecutionReportPaths=Tests\\\\TestResults\\\\Jest\\\\test-report.xml
6EF3BA5B-0A38-4A68-80D6-B5C84916389F.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Domain
sonar.test.inclusions=**/*.test.tsx,**/*.test.ts
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod6
java.vm.specification.version=17
user.home=C\:\\Windows\\ServiceProfiles\\NetworkService
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.sources=
os.version=10.0
75F63E9C-3B4A-415C-A1C1-558528CB44F5.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod1
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
21B49C3C-193A-412F-B8A6-70B9CCFF229C.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod3
6EF3BA5B-0A38-4A68-80D6-B5C84916389F.sonar.sourceEncoding=utf-8
os.arch=amd64
sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.sources=
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.sources=
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\19\\Issues.json"
sonar.projectName=Survey Builder
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.projectName=SurveyBuilder.IntegrationTests
sonar.host.url=https\://sonar.modernsurvey.com/
sonar.javascript.lcov.reportPaths=Tests\\\\TestResults\\\\Jest\\\\lcov.info
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\24\\Issues.json"
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.sources=
java.vm.compressedOopsMode=Zero based
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\30"
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.tests="E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\ControllersTests\\CultureControllerTests.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\RepositoryTests\\ReportingUsersRepositoryTests.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\RepositoryTests\\SurveyBridgeRepositoryTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\RepositoryTests\\SurveyParticipantRepositoryTests.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\RepositoryTests\\SurveyRepositoryTests.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\RepositoryTests\\SurveyResponseOptionGroupRepositoryTests.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\RepositoryTests\\SurveyTermsRepositoryTests.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\appsettings.Build.json","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\appsettings.Development.json","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\appsettings.json","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\IntegrationTests.ruleset","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests\\xunit.runner.json"
602C1038-CF3F-49C1-B9E9-36274D687F0F.sonar.projectKey=SurveyBuilder\:602C1038-CF3F-49C1-B9E9-36274D687F0F
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.sourceEncoding=utf-8
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.projectKey=SurveyBuilder\:384E68A8-80FC-48B0-AB0D-6973EFAE6571
602C1038-CF3F-49C1-B9E9-36274D687F0F.sonar.projectName=BusinessLogic
6EF3BA5B-0A38-4A68-80D6-B5C84916389F.sonar.projectKey=SurveyBuilder\:6EF3BA5B-0A38-4A68-80D6-B5C84916389F
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.sources=
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.sourceEncoding=utf-8
sun.os.patch.level=
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\33\\Issues.json"
6EF3BA5B-0A38-4A68-80D6-B5C84916389F.sonar.sources="<file list>"
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.tests="E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\Data\\ApiResponseBaseTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\Data\\AudienceVmTests.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\Data\\SurveyQuestionDisplayLogicExportModelTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\Data\\SurveyQuestionEditModelTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\Hierarchy\\NodeSelectionCriteriaTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\StringUtilitiesTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\SurveyDimensionImportModelTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\SurveyLinkUtilityTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\Validation\\ValidationHelperTest.cs","E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests\\Validation\\ValidationModelTest.cs"
sonar.scanner.metadataFilePath=E\:\\BuildAgents\\Agent1\\_work\\_temp\\sonar\\2023.05.02.71916\\8f6653e2-898c-39e3-dc2c-a43500217bb6\\report-task.txt
sonar.login=e677b6f94738d92aff190e81701ad1867322f734
sun.java.launcher=SUN_STANDARD
user.country=US
sonar.coverage.exclusions=**/appStore.ts
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.sourceEncoding=utf-8
602C1038-CF3F-49C1-B9E9-36274D687F0F.sonar.sources="<file list>"
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\API.UnitTests
java.runtime.name=Java(TM) SE Runtime Environment
sonar.scanAllFiles=true
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\BusinessLogic.UnitTests
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\31\\Issues.json"
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Integration Tests\\SurveyBuilder.IntegrationTests
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod7
sun.cpu.isalist=amd64
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\30\\Issues.json"
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.projectName=BusinessLogic.UnitTests
sun.arch.data.model=64
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\31"
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.sourceEncoding=utf-8
21B49C3C-193A-412F-B8A6-70B9CCFF229C.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\13\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\18\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\23\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\29\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\3\\Issues.json"
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.projectName=Domain.UnitTests
java.specification.vendor=Oracle Corporation
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.sources=
java.version.date=2023-01-17
java.home=C\:\\Program Files\\Java\\jdk-17
75F63E9C-3B4A-415C-A1C1-558528CB44F5.sonar.sources="<file list>"
21B49C3C-193A-412F-B8A6-70B9CCFF229C.sonar.projectKey=SurveyBuilder\:21B49C3C-193A-412F-B8A6-70B9CCFF229C
user.script=
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sonar.scanner.dumpToFile=scanner.log
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\API.UnitTests
75F63E9C-3B4A-415C-A1C1-558528CB44F5.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\1","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\11","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\16","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\21","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\27","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\5","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\8"
sonar.tests=Web\\\\src
file.encoding=Cp1252
21B49C3C-193A-412F-B8A6-70B9CCFF229C.sonar.projectName=API
21B49C3C-193A-412F-B8A6-70B9CCFF229C.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\API
sonar.projectKey=SurveyBuilder
6EF3BA5B-0A38-4A68-80D6-B5C84916389F.sonar.projectName=Domain
sun.io.unicode.encoding=UnicodeLittle
75F63E9C-3B4A-415C-A1C1-558528CB44F5.sonar.sourceEncoding=utf-8
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Domain.UnitTests
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\33"
602C1038-CF3F-49C1-B9E9-36274D687F0F.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\12\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\17\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\2\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\22\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\28\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\6\\Issues.json"
os.name=Windows Server 2016
21B49C3C-193A-412F-B8A6-70B9CCFF229C.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\13","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\18","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\23","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\29","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\3"
75F63E9C-3B4A-415C-A1C1-558528CB44F5.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\1\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\11\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\16\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\21\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\27\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\5\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\8\\Issues.json"
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\14\\Issues.json"
sonar.cs.vscoveragexml.reportsPaths=E\:\\BuildAgents\\Agent1\\_work\\29\\TestResults\\weubuildagent01$_weubuildagent01_2023-05-02_10_15_27\\In\\weubuildagent01\\weubuildagent01$_weubuildagent01_2023-05-02.10_15_14.coveragexml,E\:\\BuildAgents\\Agent1\\_work\\29\\TestResults\\weubuildagent01$_weubuildagent01_2023-05-02_10_15_47\\In\\weubuildagent01\\weubuildagent01$_weubuildagent01_2023-05-02.10_15_31.coveragexml,E\:\\BuildAgents\\Agent1\\_work\\29\\TestResults\\weubuildagent01$_weubuildagent01_2023-05-02_10_16_46\\In\\weubuildagent01\\weubuildagent01$_weubuildagent01_2023-05-02.10_16_34.coveragexml,E\:\\BuildAgents\\Agent1\\_work\\29\\TestResults\\weubuildagent01$_weubuildagent01_2023-05-02_10_16_57\\In\\weubuildagent01\\weubuildagent01$_weubuildagent01_2023-05-02.10_16_49.coveragexml
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.tests="<file list>"
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\API.UnitTests
java.awt.headless=true
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.tests="<file list>"
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.projectKey=SurveyBuilder\:BC3F5ED2-7983-4A53-8A29-930E3A52A2CA
path.separator=;
sonar.modules=6EF3BA5B-0A38-4A68-80D6-B5C84916389F,75F63E9C-3B4A-415C-A1C1-558528CB44F5,602C1038-CF3F-49C1-B9E9-36274D687F0F,21B49C3C-193A-412F-B8A6-70B9CCFF229C,4CE1EAFB-B593-4027-A8E8-37A74743BA70,5106FFC8-8F89-4DCA-8B8E-D59CE191FC79,9F5A208C-A84C-46D1-8552-ABF63EA4E492,6ADE9433-5004-4076-B0FF-21E73D300F5F,D611CF72-5F2C-486A-B648-D7C4F5D3F7B1,384E68A8-80FC-48B0-AB0D-6973EFAE6571,BC3F5ED2-7983-4A53-8A29-930E3A52A2CA
project.settings=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\sonar-project.properties
sonar.pullrequest.vsts.repository=SurveyBuilder
602C1038-CF3F-49C1-B9E9-36274D687F0F.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\BusinessLogic
6EF3BA5B-0A38-4A68-80D6-B5C84916389F.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\0\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\10\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\15\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\20\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\26\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\32\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\4\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\7\\Issues.json","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\9\\Issues.json"
sonar.pullrequest.branch=feature/90438-node18-again
sonar.visualstudio.enable=false
75F63E9C-3B4A-415C-A1C1-558528CB44F5.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Data
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.sourceEncoding=utf-8
6EF3BA5B-0A38-4A68-80D6-B5C84916389F.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod0
21B49C3C-193A-412F-B8A6-70B9CCFF229C.sonar.sourceEncoding=utf-8
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.projectKey=SurveyBuilder\:6ADE9433-5004-4076-B0FF-21E73D300F5F
java.vm.info=mixed mode, sharing
java.class.version=61.0
602C1038-CF3F-49C1-B9E9-36274D687F0F.sonar.sourceEncoding=utf-8
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.sources=
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod9
BC3F5ED2-7983-4A53-8A29-930E3A52A2CA.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod10
sun.jnu.encoding=Cp1252
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.cs.roslyn.reportFilePaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\25\\Issues.json"
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.tests=
sonar.cs.vstest.reportsPaths=E\:\\BuildAgents\\Agent1\\_work\\29\\TestResults\\weubuildagent01$_weubuildagent01_2023-05-02_10_15_27.trx,E\:\\BuildAgents\\Agent1\\_work\\29\\TestResults\\weubuildagent01$_weubuildagent01_2023-05-02_10_15_47.trx,E\:\\BuildAgents\\Agent1\\_work\\29\\TestResults\\weubuildagent01$_weubuildagent01_2023-05-02_10_16_46.trx,E\:\\BuildAgents\\Agent1\\_work\\29\\TestResults\\weubuildagent01$_weubuildagent01_2023-05-02_10_16_57.trx
file.separator=\\
line.separator=\r\n
sonar.pullrequest.key=11997
sonar.pullrequest.base=development
6ADE9433-5004-4076-B0FF-21E73D300F5F.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\25"
user.name=weubuildagent01$
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.projectName=API.UnitTests
sonar.sources=Web\\\\src
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.projectName=API.UnitTests
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.tests="<file list>"
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.projectKey=SurveyBuilder\:4CE1EAFB-B593-4027-A8E8-37A74743BA70
602C1038-CF3F-49C1-B9E9-36274D687F0F.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\12","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\17","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\2","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\22","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\28","E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\6"
java.class.path=E\:\\BuildAgents\\Agent1\\_work\\_tasks\\SonarQubePrepare_15b84ca1-b62f-4a2a-a403-89b77a063157\\5.13.0\\classic-sonar-scanner-msbuild\\sonar-scanner-4.8.0.2856\\bin\\..\\lib\\sonar-scanner-cli-4.8.0.2856.jar
java.vm.vendor=Oracle Corporation
user.variant=
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod8
sonar.pullrequest.vsts.project=KPP
scanner.home=E\:\\BuildAgents\\Agent1\\_work\\_tasks\\SonarQubePrepare_15b84ca1-b62f-4a2a-a403-89b77a063157\\5.13.0\\classic-sonar-scanner-msbuild\\sonar-scanner-4.8.0.2856\\bin\\..
sonar.scanner.app=ScannerMSBuild
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.projectBaseDir=E\:\\BuildAgents\\Agent1\\_work\\29\\s\\Tests\\Unit Tests\\Data.UnitTests
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\14"
75F63E9C-3B4A-415C-A1C1-558528CB44F5.sonar.projectName=Data
sun.cpu.endian=little
user.language=en
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.sourceEncoding=utf-8
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.projectKey=SurveyBuilder\:9F5A208C-A84C-46D1-8552-ABF63EA4E492
D611CF72-5F2C-486A-B648-D7C4F5D3F7B1.sonar.tests=
sonar.pullrequest.vsts.instanceUrl=https\://tfs.modernsurvey.com/tfs/ModernSurvey/
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.projectKey=SurveyBuilder\:5106FFC8-8F89-4DCA-8B8E-D59CE191FC79
9F5A208C-A84C-46D1-8552-ABF63EA4E492.sonar.cs.analyzer.projectOutPaths="E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\24"
21B49C3C-193A-412F-B8A6-70B9CCFF229C.sonar.sources="<file list>"
384E68A8-80FC-48B0-AB0D-6973EFAE6571.sonar.projectName=Data.UnitTests
java.vendor.url.bug=https\://bugreport.java.com/bugreport/
5106FFC8-8F89-4DCA-8B8E-D59CE191FC79.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod5
user.dir=E\:\\BuildAgents\\Agent1\\_work\\29
4CE1EAFB-B593-4027-A8E8-37A74743BA70.sonar.working.directory=E\:\\BuildAgents\\Agent1\\_work\\29\\.sonarqube\\out\\.sonar\\mod4
java.vm.version=17.0.6+9-LTS-190

Hi,

Thanks for the properties file. It’s not immediately obvious, but after some digging, I see this:

sonar.tests=Web\\\\src
...
sonar.sources=Web\\\\src

This means that analysis is being told that everything under Web\\\\src is both a source file and a test file. This is likely the root of the “indexed twice” error.

Since the properties that are auto-defined as part of the begin step are mostly prefixed with ids, I believe these two properties were set manually. Now the fun part is finding where. The first place to look is on your begin step command line. That’s the most likely place, altho there are other possibilities.

 
HTH,
Ann

Removing sonar.tests=Web\\src works to get past the error, but I’m concerned we will not get our metrics. The pattern we follow is based on the documentation here:

# Define the same root directory for sources and tests
sonar.sources = src/
sonar.tests = src/

# Include test subdirectories in test scope
sonar.test.inclusions = src/**/test/**/*

# Exclude test subdirectories from source scope
sonar.exclusions = src/**/test/**/*

In our case, test files live side-by-side with code files:

sonar.sources=Web\\src
sonar.tests=Web\\src
sonar.test.inclusions=**/*.test.tsx,**/*.test.ts
sonar.coverage.exclusions=**/appStore.ts,**/index.ts,**/constants.ts,**/services/*
sonar.javascript.lcov.reportPaths=Tests\\TestResults\\Jest\\lcov.info
sonar.testExecutionReportPaths=Tests\\TestResults\\Jest\\test-report.xml

Perhaps what we’re really missing is sonar.exclusions?

Hi,

There’s no need to define exclusions unless you find analysis is picking up something you didn’t want analyzed.

And you don’t need to explicitly define sonar.sources and sonar.tests because you’re using one of the SonarScanners that picks that all up automatically from the build environment.

I would keep the sonar.coverage.exclusions and the JS test report property and drop the others.

 
HTH,
Ann

Thank you for your help. I would like to clarify one more thing.

My understanding now is that when we run scans within a DevOps pipeline with “Integrate with MSBuild”, we do not need to define sonar.sources and sonar.tests in the pipeline task (Prepare analysis on SonarQube).

We do have a few projects where we use a standalone scanner with the “Store configuration with my source code (sonar-project.properties)” setting selected. I am assuming in those cases, we do need to specify the location of sources and tests?

Hi,

Correct.

If you’re not using SonarScanner for .NET, SonarScanner for Gradle, or SonarScanner for Maven, then you need to set all your properties explicitly, most likely in sonar-project.properties.

 
HTH,
Ann