我目前正在尝试使用Jenkins为一个使用mocha进行单元测试的emberjs节点项目实现CI。我在Amazon EC2服务器上运行Jenkins。
当我在本地运行mocha时(在桌面上,在ec2服务器上运行),我得到了这个:
./node_modules/mocha/bin/mocha
Initializing server on port 8090
Unit Test for /test
test API call incoming
key res value is: test!
✓ gives a json object with res: test!
1 passing (35ms)
然而,当我让jenkins设置运行同样的命令时:
01:44:46 + ./node_modules/mocha/bin/mocha
01:44:46
01:44:46 /var/lib/jenkins/workspace/Rekindle2_Node/server/routes/test/getTest.js:4
01:44:46 const getTest = (req, res) => {
01:44:46 ^
01:44:46 SyntaxError: Unexpected token >
etc
我已经仔细检查了,package.json有我需要的一切,我知道我没有全局安装任何改变的东西(因为我设法git clone,npm install,并从ec2运行mocha实例)。我所知道的是,詹金斯有时可能会遇到从运行的服务器中消耗环境变量的问题?有谁知道我遇到的问题是什么?我也试过卸载并重新安装节点,可能是Jenkins正在查看较旧的节点安装而ec2不是。有什么方法可以告诉这个吗?如何查看特定构建的环境变量?
答案 0 :(得分:1)
看起来詹金斯正在使用旧版本的node.js.为了确认这一点,我会将日志记录添加到Jenkins作业中。 node --version
将打印Jenkins知道的node.js版本。此外,如果您对环境感兴趣,可以在Jenkins web ui中查看特定版本的环境。或者,您可以在Jenkins构建脚本中添加env
作为一行来打印出当前的环境变量。如果结果是node.js版本问题,我会考虑使用插件来管理你的nodejs版本:node.js Jenkins plugin