如何为jenkins CI设置代码气候测试覆盖率

时间:2015-09-16 12:24:06

标签: ruby-on-rails jenkins code-climate

我正在使用代码环境来实现代码质量和测试覆盖率。我在spec_helper.rb中添加了gem和代码来启动覆盖。在下一步代码中根据文档: 在CI上运行测试时,请设置CODECLIMATE_REPO_TOKEN环境变量: $ CODECLIMATE_REPO_TOKEN = ********************捆绑exec rake

我试图在jenkins的execute shell命令中设置上面的行。还尝试在Manage jenkins中设置环境变量CODECLIMATE_REPO_TOKEN - >配置系统设置。但这并不奏效。 我无法找到任何用jenkins设置测试覆盖率的文档。 任何帮助都会很明显。

根据代码气候文档

Add the codeclimate-test-reporter gem to your Gemfile:

gem" codeclimate-test-reporter",group :: test,require:nil

Start the test reporter on the very first line of spec_helper.rb or test_helper.rb:

要求" codeclimate-test-reporter" CodeClimate :: TestReporter.start

When you run your tests on CI, set the CODECLIMATE_REPO_TOKEN environment variable:

$ CODECLIMATE_REPO_TOKEN=**************************** bundle exec rake

(Note: This token is specific to this repo on Code Climate.)

(Note: **As an alternative to the above, you may prefer to define this token as environment variable within your CI's user interface or configuration file**.) 

这里写的是在CI服务器中定义令牌环境变量。这就是我的问题是在jenkins中定义它的位置。我尝试在jenkins中定义全局环境变量"管理jenkins" - >"系统配置"。但它没有用。

enter image description here

2 个答案:

答案 0 :(得分:1)

如果您的问题是如何在Jenkins中设置环境变量,您可以查看例如在这里:List.RemoveAll Method

答案 1 :(得分:0)

我正在使用karma测试人员,并使用nycmocha来创建报告。(lcov.info) 我创建报告并将其插入build/reports/coverage/XXXXXXXXXX/lcov.info中。对于您来说,这条路可能不一样。

此后,我将lcov.info中的codeclimate.XXXXX.json转换为 最后,全部归并为sum-coverage

stage('Code Climate'){
            environment {
                CC_TEST_REPORTER_ID = credentials('7da93b1f-3602-458c-a07c-fcf36402c499')
            }
            steps{
                sh 'wget https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64  > ./cc-test-reporter'
                sh 'chmod 777  cc-test-reporter'

                sh './cc-test-reporter --debug before-build'
                sh './cc-test-reporter --debug format-coverage build/reports/coverage/server-tests/lcov.info -t lcov -o build/reports/coverage/codeclimate.server.json'
                sh './cc-test-reporter --debug format-coverage build/reports/coverage/ng/lcov.info -t lcov -o build/reports/coverage/codeclimate.frontend.json' 
                sh './cc-test-reporter --debug format-coverage build/reports/coverage/api-tests/lcov.info -t lcov -o build/reports/coverage/codeclimate.api.json'

                sh './cc-test-reporter  sum-coverage build/reports/coverage/codeclimate.*.json -p 3' 
                sh './cc-test-reporter upload-coverage -r ${CC_TEST_REPORTER_ID}'
              
                sh 'rm cc-test-reporter'
            }
        }

使用

environment {
                CC_TEST_REPORTER_ID = credentials('7da93b1f-3602-458c-a07c-fcf36402c499')
            }

我提取我在CC_TEST_REPORTER_ID中设置的Manage Jenkins > Manage credentials。您可以在https://codeclimate.com/repos/XXXXXXXXXXXXXXXX/settings/test_reporter中找到它,而在XXXXXXXXXXXXXXX中则需要放置代码环境项目。

相关问题