在本地运行的摩卡testing不会在Jenkins上运行(环境问题)

我目前正在试图与Jenkins一起实施一个使用mocha进行unit testing的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有我需要的一切,我知道我没有任何东西可以改变事情(因为我设法克隆,npm安装,并从EC2实例运行摩卡)。 我所知道的是,jenkins有时可能会从运行它的服务器上获取环境variables的问题? 有谁知道我遇到的问题可能是什么? 我试过卸载并重新安装节点,可能是Jenkins正在查看较旧的节点安装,而ec2则不是。 有什么办法可以告诉吗? 我如何看待特定版本的环境variables?

这看起来像Jenkins正在使用旧版本的node.js。 为了证实这一点,我会把日志logging添加到Jenkins的工作中。 node --version将打印Jenkins知道的node.js版本。 此外,如果您对环境感兴趣,则可以在Jenkins Web UI中查看特定版本的环境。 或者你可以在你的Jenkins构build脚本中添加env作为一行来打印出当前的环境variables。 如果事实certificate是一个node.js版本问题,我会考虑使用插件来pipe理您的nodejs版本: node.js Jenkins插件