2016-11-10 3 views
6

Я получаю странную ошибку импорта, когда пытаюсь протестировать свое реагирующее приложение со шуткой. У меня есть babel-jest, babel-preset-react-native, jest, jest-react-native и response-test-render, все установленные, но получайте это сообщение об ошибке, когда я запускаю npm-тест.Неожиданный токен импорта - тестирование React Native with Jest

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

/Users/maftalion/www/stars20/kiosk/node_modules/native-base/index.js:4 
import Drawer from './Components/vendor/react-native-drawer'; 
^^^^^^ 
**SyntaxError: Unexpected token import** 

    at transformAndBuildScript (node_modules/jest-runtime/build/transform.js:316:10) 
    at Object.<anonymous> (src/routes/Identification.js:3:17) 
    at Object.<anonymous> (src/routes/router.js:4:21) 

наборов тестов: 1 не удалось, 1, 2 прошло всего испытания: 1 прошло, 1 общая Снимки: 1 прошло, 1 всего времени: 1.011s

ответ

5

Выяснил это, в основном, бросает любые модули узлов, которые используют синтаксис es6 в transformIgnorePatterns.

"transformIgnorePatterns": [ "node_modules/(?! реагировать родной | родной базы | реагировать-клон-ссылка-элемент)" ],

+2

Дополнительные сведения об этом обходном пути: https://github.com/GeekyAnts/NativeBase/issues/396#issuecomment -270116326 – dadads

1

Попробуйте добавить transformIgnorePatterns к вашему package.json:

{ 
    "name": "MyAwesomeApp", 
    ... 
    "jest": { 
    "transformIgnorePatterns": ["/node_modules/"] 
    } 
} 

для меня Jest работает из коробки , однако:

$ react-native init MyAwesomeApp 
$ cd MyAwesomeApp 
$ npm test 
... 
Tests:  2 passed 

Я использую React Native v0.37.0.

+0

Да, когда я создал новую шумиху от приложения RN, тоже отлично работал, не знаю, почему это дает мне проблемы. transformIgnorePatterns делает оба моих теста неудачными –

+0

Установка его в "/ node_modules /" не будет работать, так как он инструктирует Jest не пересылать все сторонние библиотеки. Это также значение конфигурации по умолчанию, поэтому оно ничего не меняет. См. Https://facebook.github.io/jest/docs/configuration.html#transformignorepatterns-array-string – dadads

0

я нашел ответы, данные ранее не решить Unexpected token import ошибок в самих тестах, если они написаны на ES6 (например, с использованием шаблонов тестов, созданных Ignite CLI после ignite new MyProject).

я, наконец, удалось устранить ошибки ES6, связанные с добавлением к test задачи в package.json:

"test": "NODE_ENV=test jest --no-cache" 

Я использую RN 0.45.1, Node 7.10.18.1.2), Пряжа 0.24.6 и Jest 20.0.4

PS: Не всегда видите это в консоли, но в VS Code v1.13.1 настройка --no-cache имеет значение.

 Смежные вопросы

  • Нет связанных вопросов^_^