errors error cannot node.js unit-testing reactjs webpack karma-mocha

node.js - cannot - Módulo no encontrado: Error: No se puede resolver el módulo ''react-addons-test-utils''



cannot find module http errors (1)

Tengo un proyecto ES6 en el que utilizo el paquete web para convertir el código del cliente a ES5. El proyecto usa ReactJS en el lado del cliente, por lo que, naturalmente, las pruebas de la unidad usan React TestUtils. En la actualización más reciente (0.14), React cambió la forma en que se importan varios módulos (incluido TestUtils). Quiero actualizar, pero no puedo entender cómo hacer que las pruebas de la unidad funcionen después de cambiar las importaciones.

Cuando intento ejecutar las pruebas, recibo los siguientes mensajes:

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

En mis archivos tests_auth.jsx y test_modal.jsx, comienzo las siguientes importaciones:

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

El script de prueba en mi package.json es:

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

Mis dependencias relevantes son:

"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" }

Mi karma.config.js es:

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'' ] }); };

Finalmente, mi estructura de archivos se ve así:

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

Claramente, tengo algo mal configurado, pero me está costando mucho trabajo descifrar de qué se trata. ¿Alguien ha encontrado un problema similar? ¿Alguien más familiarizado con Karma, Webpack o React 0.14 sabe lo que estoy haciendo mal?


Me siento bastante tonto ahora mismo. Olvidé agregar ''react-addons-test-utils'' a mi paquete.json.