7

我正在使用代码环境来提高代码质量和测试覆盖率。我在 spec_helper.rb 中添加了 gem 和代码来开始覆盖。在按照文档的下一步代码中:在 CI 上运行测试时,设置 CODECLIMATE_REPO_TOKEN 环境变量: $CODECLIMATE_REPO_TOKEN=******************** bundle exec rake

我试图在 jenkins 的执行 shell 命令中设置上述行。还尝试在 Manage jenkins -> Configure System settings 中设置环境变量 CODECLIMATE_REPO_TOKEN。但这不起作用。我找不到任何文档来设置詹金斯的测试覆盖率。任何帮助都是不言而喻的。

根据代码气候文档

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

宝石“codeclimate-test-reporter”,组::测试,要求:无

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 服务器中定义。这就是我的问题是在詹金斯哪里定义它。我尝试在“管理詹金斯”->“系统配置”下的詹金斯中定义全局环境变量。但它没有用。

在此处输入图像描述

4

2 回答 2

1

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

于 2015-09-30T11:37:45.587 回答
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_reporterXXXXXXXXXXXXXXX需要放置 codeclimate 项目的位置找到它。

于 2020-10-12T16:04:43.520 回答