2017-02-08 6 views
1

У меня возникли проблемы с интеграцией модульных тестов в определенную папку моего проекта.Неожиданный импорт маркера с помощью Jest (babel-eslint недоступен из проверенного файла, symlink env)

Моя архитектура выглядит следующим образом:

|_ shared 
|_ job-board 
|_ admin-panel 

job_board и админ-панель каждый содержит симлинк указывая на общий, в ./client/src/shared, и каждый содержит node_modules папку с babel- установлен eslint. shared НЕ содержит папку node_modules и использует два узла node_modules.

С этой архитектурой мне удалось настроить все инструменты, которые я использую (Webpack, eslint, eslint-loader, ... но Jest).

Проблема заключается в том, когда я создаю * .test.js файл в job_board/* или admin_panel/*, столпотворении-шутка правильно применяются на этот файл, но когда я создаю этот файл в shared/*, столпотворение-шутка не применяется (а столпотворение-шутка не доступна в shared), так как следующая ошибка доказывает:

FAIL ..\shared\utils\tests\StringUtils.test.js 
● Test suite failed to run 
SyntaxError: Unexpected token import 

Вот мой Шутки-config.json файла:

{ 
    "moduleFileExtensions": [ 
    "js" 
    ], 
    "moduleNameMapper": { 
    "\\.(css|scss)$": "identity-obj-proxy" 
    }, 
    "modulePaths": [ 
    "<rootDir>/client" 
    ], 
    "testPathDirs": [ 
    "<rootDir>", 
    "<rootDir>/../shared" 
    ], 
    "testRegex": "(\\.|/)test\\.jsx?$" 
} 

(Примечание-е у меня было добавить "<rootDir>/../shared" к testPathDirs так что * .test.js файлы могут быть найдены)

И мой .babelrc файл:

{ 
    "plugins": [ 
    "transform-decorators-legacy", 
    "transform-object-rest-spread" 
    ], 
    "presets": [ 
    ["es2015", { "modules": false }], 
    "react", 
    "stage-0" 
    ], 
    "env": { 
    "development": { 
     "presets": [ 
     "react-hmre" 
     ] 
    }, 
    "test": { 
     "plugins": ["transform-es2015-modules-commonjs"] 
    } 
    } 
} 

Наконец, я бегу моих тестов с: node --harmony_proxies node_modules/jest-cli/bin/jest.js --config ./jest-config.json

Я что-то пропустил, или это действительно отсутствие функции, дающей возможность предоставить «корень» для babel-eslint или что-то еще?

Я также открыл вопрос о реестре Jest, но он был закрыт. И вот я здесь!

Jest конфигурация, вставленная выше.

Шутка-кли: 18.1.0

узел: 5.6.0

НПМ: 3.6.0

ОС: Windows 10

ответ

0

Для тех, кто заинтересован в обходном пути, я придумал решением, проходя через исходные файлы Вавилонской-шутку. Просто создайте .babelrc в общем корне вашего РЕПО, расширяя реальный.Так что в моем случае:

{ 
    "extends": "./admin-panel/.babelrc" 
} 
0

Похоже, у вас возникли аналогичные проблемы в this person.

Вы пробовали следующее в своем файле .babelrc?

"env": { 
    "start": { 
    "presets": [ 
     "react-hmre" 
    ] 
    }, 
    "test": { 
    "presets": ["es2015", "react", "stage-0"], 
    "plugins": ["transform-es2015-modules-commonjs"] 
    } 
} 
+0

Да, я старался, без изменений. Поскольку я использую webpack2, я отключил преобразование модулей в commonJS в dev/prod, но включил его обратно в test env (см. Мой .babelrc). – Zephir77167