在本地运行的Mocha测试不会在Jenkins上运行(环境问题)

时间:2016-06-19 06:01:13

标签: node.js ember.js jenkins amazon-ec2 babeljs

我目前正在尝试使用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不是。有什么方法可以告诉这个吗?如何查看特定构建的环境变量?

1 个答案:

答案 0 :(得分:1)

看起来詹金斯正在使用旧版本的node.js.为了确认这一点,我会将日志记录添加到Jenkins作业中。 node --version将打印Jenkins知道的node.js版本。此外,如果您对环境感兴趣,可以在Jenkins web ui中查看特定版本的环境。或者,您可以在Jenkins构建脚本中添加env作为一行来打印出当前的环境变量。如果结果是node.js版本问题,我会考虑使用插件来管理你的nodejs版本:node.js Jenkins plugin