2016-02-26 8 views
9

Niedawno zaktualizowaliśmy nasz serwer SonarQube do najnowszej wersji (5.3), a także zaktualizowaliśmy wszystkie wtyczki. Serwer monitoruje tylko jedną kompilację w tym momencie, projektu C# stworzonego przez Visual Studio Team Services (był Visual Studio Online).SonarQube: Nie można utworzyć miary dla linii X dla pliku z plikiem <X linie

Początkowo wszystko działało dobrze (oprócz długiego problemu, który opiszę w innym pytaniu). Ale po jakimś czasie zaczęliśmy się błędy jak poniżej, gdy próbujesz przekazać dane do SQ:

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 

Znaleźliśmy posta (https://groups.google.com/forum/#!topic/sonarqube/Xju6ichZe_k), który opisuje rozwiązanie obejmujące zmiany kodu jednej z wtyczek (sonar- dotnet-tests-library) i zastąpienie wbudowanego pliku na serwerze. Będąc głowicami .NET, nie mielibyśmy nic przeciwko konieczności modyfikowania bibliotek Java innych ludzi, aby to działało;)

Czy to rozwiązanie problemu, czy może jest coś, co może być przyczyną tego? W tej chwili przestajemy przesyłać dane do SonarQube, co jest wstydem ...

Odpowiedz

1

Dla mnie okazało się, że raporty OpenCover z poprzednich wersji zostały pozostawione na Jenkins.

Kiedy upewniłem się, że wszystkie zostały usunięte, problem zniknął. Zakładam, że posiadanie wielu raportów oznacza, że ​​próbował przetworzyć pliki więcej niż raz.

+2

To zdaje się zdarzać ludziom używającym także kodu Visual Studio Test. –

3

Wydaje się, że problem w oprzyrządowanie Code Coverage, że statki z Visual Studio 2015. Problem powinien być ustalony z Visual Studio 2015 Aktualizacja 3.

gospodarzem agent powinien być na bieżąco z Update 3 wkrótce po nim jest również wydany, zespół budujący TFS jest dość szybki. Aby uzyskać listę oprogramowania dostępnego na hostowanym agencie, zobacz here.

Obejścia do tej pory:

  1. nie wygeneruje plik pokrycie kodu, na przykład poprzez wyłączenie opcji w teście VS zbudować zadanie
  2. niektórzy użytkownicy zgłaszali problem nie występuje z VS 2013 więc możesz chcieć zbudować i/lub przetestować z nim zamiast używać VS 2015
Powiązane problemy