На самом деле я не трогал файл конфигурации, созданный vue-cli
для модульных тестов, это файлы:
// jest.config.js
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',
'^.+\\.js$': 'babel-jest',
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
},
snapshotSerializers: ['jest-serializer-vue'],
testMatch: ['**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'],
testURL: 'http://localhost/',
};
И все же, при попытке запустить следующий тест с npm run test:unit
:
import { shallowMount } from '@vue/test-utils';
import App from '@/App.vue';
describe('App.vue', () => {
it('renders props.msg when passed', () => {
const msg = 'new message';
const wrapper = shallowMount(App);
expect(wrapper.text()).toMatch(msg);
});
});
Я получаю следующую ошибку:
back-admin / tests / unit / app.spec.js: 1 ({"Object": функция (модуль, экспорт,require, __ dirname, __ filename, global, jest) {import {shallowMount} из '@ vue / test-utils';
SyntaxError: неожиданный токен {
Как будто babel
не удалось проанализировать оператор импорта (в частности, {
).
В чем причина этой проблемы?