首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SonarQube不显示Ruby on Rails项目的测试代码覆盖率

SonarQube不显示Ruby on Rails项目的测试代码覆盖率
EN

Stack Overflow用户
提问于 2019-03-05 06:51:38
回答 1查看 1.5K关注 0票数 2

我有一个Ruby on Rails项目,我想在SonarQube中显示测试覆盖率。该项目是使用Jenkins构建的,Jenkins将结果发送到SonarQube。单元测试使用rspec运行,代码覆盖率使用SimpleCov计算。SonarQube要求以json格式生成代码覆盖率报告,因此我在rails_helper.rb中使用了simplecov-json

代码语言:javascript
复制
if Rails.env.development? || Rails.env.test?
  require 'simplecov'
  require 'simplecov-json'
  SimpleCov.formatter = SimpleCov::Formatter::JSONFormatter
  SimpleCov.start
end

代码覆盖率报告成功生成并保存到coverage文件夹,如下所示(从Jenkins控制台输出):

代码语言:javascript
复制
Coverage report generated for RSpec to /my-project/coverage/coverage.json. 2000 / 2000 LOC (100.0%) covered.

我这样配置了我的sonar-project.properties (以阅读覆盖报告):

代码语言:javascript
复制
sonar.sources=.
sonar.exclusions=**/*_test.go,**/vendor/**,**/coverage/**

sonar.tests=.
sonar.test.inclusions=**/*_spec.rb
sonar.test.exclusions=**/vendor/**
sonar.ruby.coverage.reportPaths=coverage/coverage.json
sonar.ruby.coverage.framework=RSpec

Jenkins构建项目,运行测试,生成覆盖报告,将结果发送到SonarQube。但由于某些原因,SonarQube总是显示0%的覆盖率。

运行sonar-scanner -X (调试模式)显示此错误(Jenkins控制台日志):

代码语言:javascript
复制
15:52:30.458 ERROR: Cannot read coverage report file, expecting standard SimpleCov resultset JSON format: 'coverage/coverage.json'
java.lang.ClassCastException: java.lang.String cannot be cast to org.sonarsource.analyzer.commons.internal.json.simple.JSONObject
    at org.sonarsource.ruby.plugin.SimpleCovSensor.mergeFileCoverages(SimpleCovSensor.java:112)
    at org.sonarsource.ruby.plugin.SimpleCovSensor.execute(SimpleCovSensor.java:71)
    at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:45)

看起来SonarQube在阅读json覆盖率报告时遇到了麻烦--它没有按照预期的方式格式化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 08:34:35

Sonar的SimpleCov支持需要.resultset.json文件,而不是JSON格式化程序的输出。您需要将配置指向结果集:

代码语言:javascript
复制
sonar.ruby.coverage.reportPaths=coverage/.resultset.json
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54992841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档