Jest JS测试覆盖率数据未发布到Codeship的气候代码

时间:2016-06-02 20:27:03

标签: node.js unit-testing jestjs codeship code-climate

我有一个基于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 test settings setup命令部分中,就在通用npm install命令之前,
  • 在Codeship测试管道配置命令部分,

我还尝试在package.json中将其作为本地dev依赖项安装。

上述尝试设置的任何组合都没有导致在Code Climate方面看到有关测试覆盖范围的任何内容。

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

任何人都可以帮我弄清楚我做错了吗?

1 个答案:

答案 0 :(得分:1)

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

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