2016-02-26 22 views
9

Gần đây, chúng tôi đã nâng cấp máy chủ SonarQube lên phiên bản mới nhất (5.3) cũng như nâng cấp tất cả các plugin. Máy chủ chỉ giám sát một bản dựng tại thời điểm này, của dự án C# được xây dựng bởi Visual Studio Team Services (là Visual Studio Online).SonarQube: Không thể tạo thước đo cho dòng X cho tệp với tệp <X dòng

Lúc đầu, tất cả đều hoạt động tốt (ngoài vấn đề lâu dài tôi sẽ mô tả trong một câu hỏi khác). Nhưng sau một thời gian chúng tôi bắt đầu nhận được lỗi như một trong những dưới đây khi cố gắng chuyển dữ liệu đến 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 

Chúng tôi tìm thấy một bài (https://groups.google.com/forum/#!topic/sonarqube/Xju6ichZe_k) trong đó mô tả một giải pháp liên quan đến thay đổi mã của một trong những plugin (sonar- dotnet-tests-library) và thay thế tệp được xây dựng trên máy chủ. Là người đứng đầu .NET, chúng tôi không bận tâm việc không phải sửa đổi thư viện Java của người khác để làm việc này;)

Đây có phải là giải pháp cho vấn đề hay không. Tại thời điểm này nó dừng chúng tôi hình thức đẩy dữ liệu đến SonarQube, đó là một sự xấu hổ ...

Trả lời

1

Đối với tôi điều này hóa ra là vì các báo cáo OpenCover từ các bản dựng trước đã bị bỏ lại trên Jenkins.

Khi tôi đảm bảo rằng tất cả chúng đã bị xóa, sự cố đã biến mất, tôi cho rằng có nhiều báo cáo có nghĩa là nó đang cố gắng xử lý tệp nhiều lần.

+2

Điều này dường như cũng xảy ra với những người sử dụng tính năng kiểm tra mã Visual Studio. –

3

Có vẻ là một vấn đề trong các dụng cụ Mã Vùng phủ sóng mà tàu với Visual Studio 2015. Vấn đề cần được cố định với Visual Studio 2015 Update 3.

Các đại lý tổ chức nên được cập nhật với 3 Cập nhật ngay sau khi nó cũng được phát hành, nhóm xây dựng TFS khá nhanh trên đó. Để biết danh sách phần mềm có sẵn trên tác nhân được lưu trữ, hãy xem here.

Cách giải quyết cho đến lúc đó:

  1. không tạo ra một tập tin mã số bảo hiểm, ví dụ bằng cách vô hiệu hóa các tùy chọn trong thử nghiệm VS xây dựng nhiệm vụ
  2. một số người dùng đã báo cáo vấn đề không xảy ra với VS 2013, vì vậy bạn có thể muốn xây dựng và/hoặc thử nghiệm với nó thay vì sử dụng VS 2015
Các vấn đề liên quan