Тесты Mocha выполняются нормально локально, но не работают на Travis из-за синтаксиса деструктурирования?

#node.js #mocha.js #travis-ci #chai

#node.js #mocha.js #travis-ci #чай

Вопрос:

У меня запущено приложение NodeJS Express, и я пытаюсь протестировать свой API с помощью тестов Mocha. Эти тесты отлично выполняются локально через скрипт npm (который также является тем же сценарием, который вызывается Travis), но при запуске на Travis я сталкиваюсь с ошибкой ниже:

 > mocha --exit
/home/travis/build/tristonpang/restful-web-cs3219/node_modules/mocha/bin/mocha:13
const {deprecate} = require('../lib/utils');
      ^
SyntaxError: Unexpected token {
    at exports.runInThisContext (vm.js:54:16)
    at Module._compile (module.js:429:25)
    at Object.Module._extensions..js (module.js:464:10)
    at Module.load (module.js:341:32)
    at Function.Module._load (module.js:296:12)
    at Function.Module.runMain (module.js:487:10)
    at startup (node.js:111:16)
    at node.js:809:3
npm ERR! Test failed.  See above for more details.
The command "npm test" exited with 1.
  

Мой package.json выглядит следующим образом:

 {
  "name": "task-b",
  "version": "1.0.0",
  "description": "App demonstrating RESTful implentation.",
  "main": "index.js",
  "scripts": {
    "start": "nodemon index",
    "test": "mocha --exit"
  },
  "keywords": [
    "restful"
  ],
  "author": "Triston Pang Erh Syen",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "chai-http": "^4.3.0",
    "express": "^4.17.1",
    "mongoose": "^5.10.3"
  },
  "devDependencies": {
    "chai": "^4.2.0",
    "chai-like": "^1.1.1",
    "mocha": "^8.1.3"
  },
  "babel": {
    "presets": [
      "es2015"
    ]
  }
}
  

Обыскав все вокруг и не найдя никакого решения, я довольно озадачен тем, почему это происходит, любая помощь была бы оценена!

Ответ №1:

Я обнаружил проблему, это была опечатка в .travis.yml файле, который установил версию узла на 1.0.0, задолго до того, как была введена деструктурирование.