2015-12-04 27 views
7

मेरे पास एक ईएस 6 प्रोजेक्ट है जिसमें मैं क्लाइंट कोड को ईएस 5 में परिवर्तित करने के लिए वेबपैक का उपयोग करता हूं। प्रोजेक्ट क्लाइंट पक्ष पर ReactJS का उपयोग करता है, इसलिए, स्वाभाविक रूप से, यूनिट परीक्षण प्रतिक्रिया परीक्षण का उपयोग करते हैं। सबसे हालिया अपडेट (0.14) में, changed how several modules are imported (टेस्टयूट सहित) पर प्रतिक्रिया करें। मैं अपडेट करना चाहता हूं, लेकिन मैं यह नहीं समझ सकता कि आयात को बदलने के बाद इकाई परीक्षण कैसे करें।मॉड्यूल नहीं मिला: त्रुटि: मॉड्यूल 'प्रतिक्रिया-एडॉन्स-टेस्ट-यूटिल' को हल नहीं कर सकता

जब मैं परीक्षण चलाने के लिए प्रयास करते हैं, मैं निम्न संदेश मिलता है:

04 12 2015 12:40:48.038:ERROR [karma]: { [Error: no such file or directory] 
    code: 'ENOENT', 
    errno: 34, 
    message: 'no such file or directory', 
    path: '/_karma_webpack_/public/test/main.js' } 
Error: no such file or directory 
    at MemoryFileSystem.readFileSync (<project>/node_modules/karma-webpack/node_modules/webpack-dev-middleware/node_modules/memory-fs/lib/MemoryFileSystem.js:107:10) 
    at MemoryFileSystem.readFile (<project>/node_modules/karma-webpack/node_modules/webpack-dev-middleware/node_modules/memory-fs/lib/MemoryFileSystem.js:297:21) 
    at doRead (<project>/node_modules/karma-webpack/index.js:156:26) 
    at Plugin.readFile (<project>/node_modules/karma-webpack/index.js:160:3) 
    at doNTCallback0 (node.js:419:9) 
    at process._tickCallback (node.js:348:13) 
Hash: dee787e2bee8303745db 
Version: webpack 1.12.9 
Time: 3657ms 
           Asset  Size Chunks  Chunk Names 
       public/test/main.js 1.71 MB  0  public/test/main.js 
5044d04bf14a5de57d08.hot-update.json 35 bytes    
chunk {0} public/test/main.js (public/test/main.js) 1.6 MB [rendered] 
    [0] ./public/test/main.js 176 bytes {0} [built] 
    [1] ... 

ERROR in ./public/test/common/test_modal.jsx 
Module not found: Error: Cannot resolve module 'react-addons-test-utils' in <project>/public/test/common 
@ ./public/test/common/test_modal.jsx 13:28-62 

ERROR in ./public/test/pages/test_auth.jsx 
Module not found: Error: Cannot resolve module 'react-addons-test-utils' in <project>/public/test/pages 
@ ./public/test/pages/test_auth.jsx 17:28-62 

मेरी tests_auth.jsx में और test_modal.jsx फ़ाइलें, मैं निम्नलिखित आयात शुरू:

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import TestUtils from 'react-addons-test-utils'; 

मेरी package.json में परीक्षण स्क्रिप्ट है:

PHANTOMJS_BIN=./node_modules/.bin/phantomjs && ./node_modules/karma/bin/karma start karma.config.js 

मेरे प्रासंगिक निर्भरता हैं:

"devDependencies": { 
    "chai": "^3.4.1", 
    "chai-as-promised": "^5.1.0", 
    "coveralls": "^2.11.4", 
    "karma": "^0.13.9", 
    "karma-chai": "^0.1.0", 
    "karma-chai-as-promised": "^0.1.2", 
    "karma-chai-plugins": "^0.6.1", 
    "karma-coverage": "^0.5.2", 
    "karma-mocha": "^0.2.0", 
    "karma-phantomjs-launcher": "^0.2.1", 
    "karma-sinon-chai": "^1.0.0", 
    "karma-webpack": "^1.7.0", 
    "mocha": "^2.3.3", 
    "phantomjs": "^1.9.18", 
    "react-hot-loader": "^1.3.0", 
    "webpack-dev-server": "^1.10.1" 
    }, 
    "dependencies": { 
    "react": "0.14.3", 
    "react-dom": "0.14.3", 
    "webpack": "^1.12.1" 
    } 

मेरे karma.config.js है:

var webpack = require('webpack'); 

module.exports = function(config) { 
    'use strict'; 

    config.set({ 
     files: [ 
      './public/test/polyfill.js', 
      './public/test/main.js' 
     ], 
     preprocessors: { 
      './public/test/main.js': [ 
       'webpack' 
      ] 
     }, 
     browsers: [ 
      'PhantomJS' 
     ], 
     frameworks: [ 
      'mocha', 
      'sinon-chai', 
      'chai-as-promised', 
      'chai' 
     ], 
     reporters: [ 
      'progress', 
      'coverage' 
     ], 
     coverageReporter: { 
      dir: 'coverage/', 
      reporters: [ 
       { 
        type: 'lcovonly', 
        subdir: '.', 
        file: 'lcov.info' 
       }, { 
        type: 'html', 
        subdir: 'html' 
       } 
      ] 
     }, 
     webpack: { 
      plugins: [ 
       new webpack.HotModuleReplacementPlugin(), 
       new webpack.NoErrorsPlugin() 
      ], 
      module: { 
       loaders: [ 
        { 
         test: /\.jsx?$/, 
         exclude: /node_modules/, 
         loader: 'babel-loader?stage=0' 
        } 
       ] 
      }, 
      resolve: { 
       extensions: [ 
        '', 
        '.js', 
        '.jsx' 
       ], 
       modulesDirectories: [ 
        'node_modules', 
        'public/src', 
        'public/test' 
       ] 
      } 
     }, 
     webpackMiddleware: { 
      noInfo: true 
     }, 
     singleRun: true, 
     plugins: [ 
      'karma-mocha', 
      'karma-webpack', 
      'karma-coverage', 
      'karma-sinon-chai', 
      'karma-chai', 
      'karma-chai-plugins', 
      'karma-chai-as-promised', 
      'karma-phantomjs-launcher' 
     ] 
    }); 
}; 

अंत में, मेरी फ़ाइल संरचना इस तरह दिखता है:

karma.config.js 
package.json 
node_modules/ 
public/ 
    app.js 
    index.html 
    src/ 
     main.jsx 
    test/ 
     main.js 
     polyfill.js 
     pages/ 
      test_auth.jsx 
     common/ 
      test_modal.jsx 

मैं स्पष्ट रूप से कुछ गलत कॉन्फ़िगर किया है, लेकिन मैं कर रहा हूँ यह पता लगाने में बहुत परेशानी है कि यह क्या है। क्या किसी को भी ऐसी ही समस्या का सामना करना पड़ा है? क्या कोई कर्म, वेबपैक, या प्रतिक्रिया 0.14 से अधिक परिचित है, मुझे पता है कि मैं गलत क्या कर रहा हूं?

उत्तर

15

मुझे अभी बहुत सुंदर लगता है। मैं अपने पैकेज.जेसन में 'प्रतिक्रिया-एडॉन्स-टेस्ट-यूटिल' जोड़ने के लिए भूल गया।

संबंधित मुद्दे