У меня проблема с Mocha, Expect и Enzyme. Во-первых, я передаю свой файл конфигурации webpack через babel. Ниже приведен скриншот об ошибке, который я получаю, и тестовые файлы действительны. У кого-то была аналогичная проблема?Mocha не работает юнит-тесты через webpack 2
ответ
Ты показываешь мне свой WebPack конфигурации, а не ваш столпотворение конфигурации. Но, основываясь на том, что я вижу, хотя я предполагаю, что вы используете babel-preset-es2015-webpack
, который исключает преобразование для пересылки модулей es6 (babel-plugin-transform-es2015-modules-commonjs
). Вы хотите включить это для своих тестов. Вы можете сделать это точно так же, как я покажу вам, как включить плагин babel-plugin-__coverage__
в this lesson. Также проверьте cross-env, чтобы установить BABEL_ENV
для тестирования.
Кроме того, вы используете babel-core/register
, который будет устаревшим. Вместо этого вы захотите использовать пакет babel-register
.
Так что ваш сценарий будет, вероятно, выглядеть следующим образом:
"test": "cross-env BABEL_ENV=test mocha --harmony --compilers js:babel-register --recursive src/__tests__"
Я использовал babel-register слишком хорошо, но не повезло. Кроме того, команда, которую вы дали, дала ту же ошибку :( –
Вы обновили свой '.babelrc', как я объяснил? – kentcdodds
yep <3 Спасибо за исправление Kent <3 <3 Получите полезные ошибки прямо сейчас! –
Что делает ваш взгляд конфигурации Бабель как? Убедитесь, что вы включили преобразование для обработки операторов импорта. Обычно вы делаете это с помощью плагина 'babel-preset-es2015' – kentcdodds
, вы также передали свои .test-файлы. Ошибка ясно говорит о том, что Mocha не может решить синтаксис 'import' ключевого слова i.e' ES 2015'. Я думаю, вам нужно перевести ваши .test-файлы в 'ES5', а затем запустить mocha в файлы ES5. – Venky
try 'var expect = require ('expect');' – Venky