2016-05-05 3 views
1

У меня аналогичная проблема, как этот вопрос:React/Mocha Тестирование: не может найти импортированные компоненты

Unable to import a React Component in my Mocha test

Проблема в том, что я включил оба этих изменений и Мокко еще не обнаруживает мое «импорт» при попытке тестирования компонентов.

Я вижу в своем callstack (прилагается внизу), я загружаю babel-register.

Файлы являются следующие

структуры файла

/client 
    /src 
     /components 
     //test components 
     /containers 
    /test 
     /components 
     /dom.js && helper.js 

package.json

"babel": { 
    "presets": ["es2015"] 
    } 
"scripts": { 
    "start": "node bin/server.js", 
    "test": "mocha --compilers js:babel-register \"./test/**/*.js\" --require ignore-styles", 
    "test:watch": "npm run test -- --watch" 
    }, 

mocha.opt файл

--require ./test/test_helper.js 
--require ./test/dom.js 
--recursive 

EDIT: добавлены операторы импорта из файла компонента

// Из компонента

import { Modal } from 'components/Modal' 

// модальный компонент

export class RecipeModal extends Component { 

это стек/сообщение об ошибке вызова я получаю, когда я пытаюсь запустить Mocha

Warning: require('react/addons') is deprecated. Access using require('react-addons-{addon}') instead. 
Error: Cannot find module 'components/RecipeModal' 
    at Function.Module._resolveFilename (module.js:336:15) 
    at Function.Module._load (module.js:286:25) 
    at Module.require (module.js:365:17) 
    at require (module.js:384:17) 
    at Object.<anonymous> (index.js:11:1) 
    at Module._compile (module.js:434:26) 

    at loader (/Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/babel-register/lib/node.js:158:5) 
    at Object.require.extensions.(anonymous function) [as .js] (/Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/babel-register/lib/node.js:168:7) 

    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Module.require (module.js:365:17) 
    at require (module.js:384:17) 
    at Object.<anonymous> (Recipes_test.js:2:1) 
    at Module._compile (module.js:434:26) 
    at loader (/Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/babel-register/lib/node.js:158:5) 
    at Object.require.extensions.(anonymous function) [as .js] (/Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/babel-register/lib/node.js:168:7) 

    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Module.require (module.js:365:17) 
    at require (module.js:384:17) 
    at /Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/mocha/lib/mocha.js:219:27 
    at Array.forEach (native) 
    at Mocha.loadFiles (/Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/mocha/lib/mocha.js:216:14) 
    at Mocha.run (/Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/mocha/lib/mocha.js:468:10) 
    at loadAndRun (/Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/mocha/bin/_mocha:359:22) 
    at Object.<anonymous> (/Users/ACKeepingitCoo/Desktop/ketoBot/client/node_modules/mocha/bin/_mocha:376:3) 
    at Module._compile (module.js:434:26) 
    at Object.Module._extensions..js (module.js:452:10) 
    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Function.Module.runMain (module.js:475:10) 
    at startup (node.js:117:18) 
    at node.js:951:3 

Другое (возможно, соответствующая информация)

Я запускаю диспетчер версий узла (узел 4.0), потому что по какой-то причине использование более новой версии узла вызывает ошибку.

Большое спасибо за помощь!

+0

Вы можете показать нам свое заявление об импорте? – ZekeDroid

+0

добавлен в исходный вопрос –

+0

Значение 'from' вашего импорта предполагает, что у вас есть' node_modules/components', но вы этого не делаете. Когда вы не тестируете код, вы связываете его с чем-то, что псевдонизирует эти пути? Если это так, вам придется как-то объяснить это с помощью вашей тестовой настройки. См. Также http://stackoverflow.com/questions/36943118/shorten-es2015-import-paths/36944166#36944166. – JMM

ответ

1

Благодаря @JMM помог мне изолировать источник

Если вы используете псевдонимы в WebPack разрешить пути к каталогам, вы должны включить их в сценарии мокко выполнения или макет требует их узлов модулей

Using webpack aliases in mocha tests

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