2016-02-26 23 views
9

我們最近將SonarQube服務器升級到最新版本(5.3)以及升級所有插件。服務器現在只監視Visual Studio Team Services(Visual Studio Online)構建的C#項目的單個構建。起初,一切運作良好(除了長期以來我會在另一個問題中描述的問題)。但是,一段時間後,我們開始越來越嘗試將數據推送到SQ時,下面像一個錯誤:SonarQube:無法爲文件的X行創建度量X行

ERROR: Error during Sonar runner execution 
org.sonar.runner.impl.RunnerException: Unable to execute Sonar 
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91) 
    at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) 
    at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) 
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) 
    at org.sonar.runner.api.Runner.execute(Runner.java:100) 
    at org.sonar.runner.Main.executeTask(Main.java:70) 
    at org.sonar.runner.Main.execute(Main.java:59) 
    at org.sonar.runner.Main.main(Main.java:53) 
Caused by: java.lang.IllegalStateException: Can't create measure for line 47 for file '[PATH]/[FILENAME].cs' with 45 lines 
    at org.sonar.batch.sensor.coverage.CoverageExclusions.validateMaxLine(CoverageExclusions.java:158) 
    at org.sonar.batch.sensor.coverage.CoverageExclusions.validate(CoverageExclusions.java:129) 
    at org.sonar.batch.deprecated.DeprecatedSensorContext.saveMeasure(DeprecatedSensorContext.java:204) 
    at org.sonar.plugins.dotnet.tests.CoverageReportImportSensor.analyze(CoverageReportImportSensor.java:78) 
    at org.sonar.plugins.dotnet.tests.CoverageReportImportSensor.analyse(CoverageReportImportSensor.java:59) 
    at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58) 
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50) 
    at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:98) 
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:185) 
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132) 
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117) 
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:243) 
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:238) 
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236) 
    at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:228) 
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132) 
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117) 
    at org.sonar.batch.task.ScanTask.execute(ScanTask.java:55) 
    at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86) 
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132) 
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117) 
    at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:122) 
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119) 
    at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:79) 
    at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) 
    ... 9 more 

我們發現一個帖子(https://groups.google.com/forum/#!topic/sonarqube/Xju6ichZe_k)描述了一個解決方案,涉及改變的任一插件的代碼(聲納dotnet-tests-library)並替換服務器上的內置文件。作爲.NET的負責人,我們不介意不必修改其他人的Java庫以使其工作;)

這是問題的解決方案,還是有其他可能導致此問題的解決方案?目前,它阻止我們向SonarQube推送數據,這是一個恥辱...

回答

1

對我來說,原來是因爲從之前的版本OpenCover報告被留在詹金斯。

一旦我確保它們全部被刪除,問題就消失了,我推測有多個報告意味着它試圖不止一次地處理文件。

+2

這似乎也發生在使用Visual Studio測試代碼覆蓋率的人身上。 –

3

似乎是在代碼覆蓋工具的問題,即船舶與Visual Studio 2015的問題應該是固定在Visual Studio 2015年更新3

託管代理人應當更新3後不久,就被更新也發佈了,TFS構建團隊的速度非常快。有關託管代理可用軟件的列表,請參閱here

解決辦法,直到然後:

  1. 不通過禁用選項,在VS測試版本任務
  2. 一些用戶報告不VS 2013出現問題生成代碼覆蓋率文件,例如,所以你可能想用它構建和/或測​​試而不是使用VS 2015