2

我有一个基于 Node.js 的项目,我在其中使用 Jest 进行 .js 单元测试。我将collectCoverage配置设置设置为true并且可以在本地开发运行中以及在 Codeship 中运行构建时看到测试覆盖率表。

但是,我似乎无法正确设置将测试覆盖率数据发布到 Code Climate 以在此处显示结果。

我将 CodeClimate 的设置说明中给出的 repo 令牌保存到 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) 的安装,从说明中我不清楚它应该去哪里。我试过把它:

  • 在常规命令之前的 Codeship 测试设置设置命令部分中npm install
  • 在 Codeship 测试管道配置命令部分,

我还尝试将它安装为我的 package.json 中的本地开发依赖项。

上述设置尝试的任何组合都没有导致在代码气候方面看到任何关于测试覆盖率的内容。

作为关于我所做工作的最后一点说明,我没有提交我的本地coverage目录,因此它不包含在我的 Codeship 构建中。

谁能帮我弄清楚我做错了什么?

4

1 回答 1

1

当然,在发布此问题后不久,就发现了问题。

与其将 CODECLIMATE_REPO_TOKEN 直接放在 Codeship 环境变量部分,不如将其包含在 Codeship 测试管道配置设置中,在npm test命令之后(生成coverage目录的内容)。而且,您确实需要确保lcov.info文件的路径指示覆盖目录。

于 2016-06-02T21:01:07.487 回答