2016-05-05 38 views
1

我也有類似的問題,因爲這個問題:反應,和/摩卡測試:找不到進口部件

Unable to import a React Component in my Mocha test

的問題是,我已經把這些變化既與摩卡仍然沒有檢測我的當我嘗試測試組件時「導入」語句。

我看到我的調用堆棧(附在底部),我正在加載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 

編輯:增加進口從組件文件的語句

//從組件

import { Modal } from 'components/Modal' 

//模態分量

export class RecipeModal extends Component { 

這是我收到的調用堆棧/錯誤消息,當我嘗試運行摩卡

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