Настройка абсолютного пути для импорта в стиле ES6 в тестах Jasmine

Я запускаю модульные тесты с использованием Jasmine (точнее, jasmine-es6: https://github.com/vinsonchuong/jasmine-es6) и хочу настроить Jasmine для использования абсолютных путей.

Я настроил Grunt на использование пути "app" в качестве корневого каталога для исходных файлов при просмотре моих скриптов. После загрузки такого скрипта в браузере он работает нормально. Вот часть моего Gruntfile:

Gruntfile.js

newUIContentScript: {
              options: {
                  transform: [
                      ['babelify', {
                          presets: ['es2015', 'react'],
                          plugins: ["transform-object-rest-spread"],
                          babelrc: false,
                          sourceMaps: true
                      }]
                  ],
                  browserifyOptions: {
                      paths: ["./app"] // enables using absolute paths with ./app as root
                  }
              },
              src: [
              'app/scripts-old/*.js'
              'app/scripts-new/*.js', // and new UI scripts
              'app/common/*.js',
              ],
              dest: '<%= config.srcBundle %>/newScriptBundle.js' 
          },

Таким образом, я могу использовать абсолютные пути при импорте в стиле ES6 в файлы JS:

приложение / скрипты-старый /application.js

import MyReducer from "scripts-new/Reducer";
import MyEventNames from "common/MyEventNames";

вместо относительных путей:

приложение / скрипты-старый /application.js

import MyReducer from "../scripts-new/Reducer";
import MyEventNames from "../common/MyEventNames";

Теперь, когда я запускаю тесты Jasmine, я получаю следующую ошибку:

Error: Cannot find module 'scripts-new/Reducer'
    at Module._resolveFilename (module.js:469:15)
    at Function.Module._resolveFilename (<project>\node_modules\register-module\index.js:18:10)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (<project>/spec/app/new-scripts/ReducerSpec.js:1:1)
    at Module._compile (module.js:570:32)
    at loader (<project>\node_modules\babel-register\lib\node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (<project>\node_modules\babel-register\lib\node.js:154:7)
    at Module.load (module.js:487:32)

Я использую файл конфигурации по умолчанию jasmine.json. Я не вижу никакой опции конфигурации, чтобы установить абсолютные пути так, как я использую их в проекте. Я не хочу отступать от использования относительных путей, поскольку абсолютные пути делают мой импорт нечитаемым (структура проекта намного сложнее, это упрощенный пример).

Есть ли другие подходы к тестированию импорта ES6? Можно ли настроить пути другим способом?

0 ответов

Другие вопросы по тегам