如何配置Travis CI以无测试方式构建Node.js项目?
搞定Travis-CI构建Node.js项目因无测试失败的问题
我明白你现在的处境——刚把Node.js项目托管到GitHub上,还没来得及写测试用例,想用Travis-CI完成构建但默认配置跑失败了。问题核心在于Travis对Node.js项目的默认行为:它会自动执行npm test命令,但你的项目既没有测试脚本也没有测试用例,直接触发了构建失败。
下面给你两个简单的解决办法,选哪个都行:
方案一:修改Travis配置,跳过测试环节
直接在你的.travis.yml中添加script字段,指定一个肯定能成功的命令,覆盖默认的npm test行为:
language: node_js node_js: - "node" install: - npm install script: - echo "暂未编写测试用例,跳过测试环节"
这样Travis执行到测试阶段时,只会输出一句提示,然后顺利结束整个流程。
方案二:给package.json添加空测试脚本
如果你不想改动Travis配置,也可以在项目根目录的package.json里新增一个test脚本,让它执行后返回成功状态:
{ // 你的其他项目配置内容... "scripts": { "test": "echo \"没有配置测试用例\" && exit 0" } }
这里的exit 0是关键,它会告诉Travis这个命令执行成功,不会触发构建失败的判定。
为什么默认配置会失败?
Travis CI针对Node.js项目的默认构建流程是:
- 执行
npm install安装依赖 - 自动执行
npm test运行测试
如果你的package.json里没有test脚本,或者该脚本执行后返回非0的状态码(代表失败),Travis就会把整个构建标记为失败。上面的两种方法都是让测试环节返回成功状态,从而让整个构建流程顺利通过。
内容的提问来源于stack exchange,提问作者ShanZhengYang




