Vue Jest недопустимый или неожиданный токен

#vue.js #testing #jestjs #babeljs

#vue.js #тестирование #jestjs #babeljs

Вопрос:

Я новичок в Jest и Vue, но я получаю ошибку в одном из моих тестов.

Ошибка:

Не удалось запустить набор тестов

    /...../node_modules/element-ui/lib/theme-chalk/table-column.css:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){@charset "UTF-8";.el-checkbox,.el-checkbox__input{white-space:nowrap;display:inline-block;position:relative}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #DCDFE6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409EFF}.el-checkbox.is-bordered.is-disabled{border-color:#EBEEF5;cursor:not-allowed}.el-checkbox.is-bordered .el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__l

    SyntaxError: Invalid or unexpected token
 

Вот мой файл package.json:

 "jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "vue"
    ],
    "transform": {
      ".*\.(vue)$": "vue-jest",
      ".*\.(js)$": "babel-jest"
    },
    "moduleNameMapper": {
      "\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
      "\.(css|less)$": "<rootDir>/__mocks__/styleMock.js",
      "^@/(.*)$": "<rootDir>/src/$1"
    },
     "testPathIgnorePatterns": [
      "<rootDir>/(build|docs|node_modules)/*"
    ],
    "testEnvironment": "node"
  },
  "babel": {
    "presets": [
      [
        "@babel/preset-env",
        {
          "targets": {
            "node": "current"
          }
        }
      ]
    ]
  },
 

Я не понимаю, почему node_modules не исключается, но даже если они не исключены, почему файл .css не издевается?

Ответ №1:

Я подозревал, что проблема заключалась в том, что jest не читал мою конфигурацию package.json .

Чтобы проверить это, я использовал jest --showConfig . Действительно, это отличалось от package.json .

Затем я создал новый конфигурационный файл jest.json и изменил тестовый скрипт в package.json на "test": "jest --config jest.json"

Это содержимое моей конфигурации:

 {
    "verbose": true,
    "automock": false,
    "globals": {
      "_Table": {"name": "el-table"},
      "_TableColumn": {"name": "el-table-column"}},
    "moduleFileExtensions": [
      "js",
      "json",
      "vue"
    ],
    "transform": {
      ".*\.(vue)$": "vue-jest",
      ".*\.(js)$": "babel-jest"
    },
    "moduleNameMapper": {
      "\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
      "\.(css|less)$": "<rootDir>/__mocks__/styleMock.js",
      "^@/(.*)$": "<rootDir>/src/$1"
    },
     "testPathIgnorePatterns": [
      "<rootDir>/(build|docs|node_modules)/"
    ]
}
 

Есть еще несколько проблем, но это была основная.

Комментарии:

1. Я до сих пор не знаю, почему jest не прочитал мою конфигурацию из package.json