У меня проблема при запуске шутного теста. Я получаю неожиданный идентификатор импорта
Я уже пытался очистить кэш npm и установить jpm babel jest, polyfill, preset-es2015. Я также прочитал это , пробуя различные конфигурации здесь и там.
Это мой babel.config.js
module.exports = {
presets: [
'@vue/app'
],
env: {
test: {
plugins: [
"transform-strict-mode",
"transform-es2015-modules-commonjs",
"transform-es2015-spread",
"transform-es2015-destructuring",
"transform-es2015-parameters"
]
}
}
}
и мой jest config
в package.json
"jest": {
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"transform": {
"^.+\\.js$": "babel-jest",
".*\\.(vue)$": "vue-jest"
},
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
}
}
Вот ошибка.
Test suite failed to run
PCROUTE\Test.test.js:3
import _interopRequireDefault from "PCROUTE\\node_modules\\@babel\\runtime-corejs2/helpers/esm/interopRequireDefault";
^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
Я ожидаю пройти тест, но получаю это сообщение об ошибке. Я думаю, что проблема связана с частью env в babel.config.js
Редактировать: я также использую Windows 7 , и это может вызывать смешанные косые черты назад и вперед.
Edit2: я только что протестировал его в Linux, и он не работает. У меня есть все в слэшах
PCROUTE/src/tests/Test.test.js:3
import _interopRequireDefault from "PCROUTE/node_modules/@babel/runtime-corejs2/helpers/esm/interopRequireDefault";
^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at ScriptTransformer._transformAndBuildScript
Редактировать 3: Я видел, что многие люди исправили это с помощью [этих строк] (https://github.com/vuejs/vue-cli/issues/1879#issuecomment-409872897).
transformIgnorePatterns: [
"node_modules/(?!(babel-jest|jest-vue-preprocessor)/)"
]
в jest config file
. Я добавил их и запустил ./node_modules/jest/bin/jest.js --clearCache
, но это не работает.
Редактировать 4: Я только что добавил пару вещей в свой файл шуток. И удалил пару в моем файле Babel, и теперь я получаю. Unexpected String
НОВЫЙ ШУМ ФАЙЛ
module.exports = {
moduleFileExtensions: [
'js',
'jsx',
'json',
'vue'
],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
'^.+\\.jsx?$': 'babel-jest'
},
transformIgnorePatterns: [
'/node_modules/'
],
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
snapshotSerializers: [
'jest-serializer-vue'
],
testMatch: [
'**/tests/**/*.test.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
],
testURL: 'http://localhost/',
watchPlugins: [
'jest-watch-typeahead/filename',
'jest-watch-typeahead/testname'
]
}
И я удалил все из моего файла Babel , кроме части presets: @vue/app
.
Вот новая ошибка, которую я получаю.
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import "core-js/modules/es6.array.find";
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected string