我有一个基于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目录。

09-30 13:37