我有一个基于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
)的安装,我不清楚指示到底应该去哪里。我已经尝试过了:
npm install
命令之前,我还尝试在package.json中将其作为本地dev依赖项安装。
上述尝试设置的任何组合都没有导致在Code Climate方面看到有关测试覆盖范围的任何内容。
作为关于我所做的最后一点,我不提交了我的本地coverage
目录,因此它不包含在我的Codeship构建中。
任何人都可以帮我弄清楚我做错了吗?
答案 0 :(得分:1)
当然,在发布此问题后不久,就找出了问题。
不是直接在代码环境变量部分中放置CODECLIMATE_REPO_TOKEN,而是需要在npm test
命令(生成coverage
目录之后)之后将其包含在Codeship测试管道配置设置中。而且,您需要确保lcov.info
文件的路径指示覆盖目录。