我有一个基于Node.js的项目,我在其中使用Jest进行.js单元测试。我将collectCoverage
配置设置设置为true
,并且可以在本地开发运行中以及在Codeship中运行构建时看到测试覆盖率表。
但是,对于将测试覆盖率数据发布到Code Climate以便在那里显示结果,我似乎无法正确设置。
我将CodeClimate设置说明中给出的回购令牌保存到Codeship环境变量中,如下所示:CODECLIMATE_REPO_TOKEN=xxxxxxxxxx codeclimate-test-reporter < lcov.info
鉴于在本地,Jest collectCoverage将lcov.info
数据文件保存在项目根目录中的coverage
目录中,我还尝试了使用该路径的环境变量的变体,如下所示:CODECLIMATE_REPO_TOKEN=xxxxxxxxxx codeclimate-test-reporter < coverage/lcov.info
对于codeclimate-test-reporter节点模块(npm install -g codeclimate-test-reporter
)的安装,从我的指示中我不清楚它应该去哪里。我试着把它:
在常规npm install
命令之前的Codeship测试设置设置命令部分中,
在“ Codeship测试管道配置命令”部分中,
我也尝试将其安装为package.json中的本地开发依赖项。
以上尝试进行设置的任何组合都没有导致在“代码气候”方面看到有关测试覆盖范围的任何信息。
最后,请注意,我尚未提交本地的coverage
目录,因此该目录未包含在我的Codeship构建中。
谁能帮我弄清楚我在做什么错?
最佳答案
当然,在发布此问题后不久,便找出了问题所在。
而不是直接将CODECLIMATE_REPO_TOKEN放入“ Codeship环境变量”部分,而是需要在npm test
命令(生成coverage
目录的命令)之后将其包括在“ Codeship测试管道配置”设置中。并且,您确实需要确保lcov.info
文件的路径指示coverage目录。