gpt4 book ai didi

node.js - 仅从 Travis 向 Coveralls 发送数据,而不是在本地测试时

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:22 24 4
gpt4 key购买 nike

我有一个应用程序 ( https://github.com/idmillington/dendry ) 使用 Travis CI 来监控构建状态。我使用 Istanbul 生成一份覆盖率报告,我想将其发送给 Coveralls,以便为 README 生成一个覆盖率按钮。

所有这些我都可以开始工作。但是……

当我在本地运行 npm test 时,我不想发送覆盖率数据。我通常为每次提交运行数十次 npm test。但是当我推送并且 Travis 完成它的工作时,我希望 Travis 为我更新覆盖范围。

我的 package.json 中可以有这样的东西:

"scripts": {
"test": "./node_modules/.bin/istanbul test ./node_modules/.bin/_mocha",
}

这对于本地来说很好,并且不会更新 Coveralls,但 Travis 也不会更新 Coveralls。或者我可以这样做:

"scripts": {
"test": "./node_modules/.bin/istanbul test ./node_modules/.bin/_mocha && ./node_modules/coveralls/bin/coveralls.js < ./coverage/lcov.info",
}

这对 Travis 来说是完美的,但每次我在本地运行 npm test 时都会尝试将数据推送到 Coveralls。

据我所知,我不能让 Travis 运行 npm test 以外的东西。

我不愿意要求任何潜在用户或贡献者记得测试使用

$ npm run-script test-local

或类似的东西,尤其是运行 npm test 会在没有正确的工作服私钥的情况下生成上传错误。

有没有办法在这里获得正确的行为?

最佳答案

事实证明,答案简单得可怕。 Travis 确实允许您在运行时调用您喜欢的任何脚本,因此我将其添加到我的 .travis.yml 文件中:

script: npm run-script test-on-travis

所以在 package.json 中我可以定义:

"scripts": {
"test": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha",
"test-on-travis": "./node_modules/.bin/istanbul cover --report lcovonly ./node_modules/.bin/_mocha && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
}

一切正常。

关于node.js - 仅从 Travis 向 Coveralls 发送数据,而不是在本地测试时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com