2016-12-01 19 views
7

Używam Karmy, Webpacka, enzymu, PhantomJS do przetestowania mojego projektu reakcji. Kiedy uruchamiam poniżej komendy do uruchamiania testów,Jak naprawić błąd "ReferenceError: Can not find variable: require" podczas testowania jednostki w Karma, Webpack, PhantomJS

./node_modules/karma/bin/karma start config/karma.conf.js --single-run --browsers PhantomJS 

Mam poniżej błąd:

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR 
    ReferenceError: Can't find variable: require 
    at /dev/test/test.js:3 

W Line3 kodu źródłowego test.js, nie używać require poniżej kod:

import { expect } from 'chai'; 

I wędrować dlaczego PhantomJS skarżą się ten błąd.

Poniżej jest moja karma conf:

var path = require('path'); 
var webpackconf = require("./webpack.config") 

module.exports = function(config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['mocha', 'chai'], 
    files: [ 
     '../test/**/*.js' 
    ], 

    preprocessors: { 
     // add webpack as preprocessor 
     '../src/**/*.js': ['babel'], 
     '../test/**/*.js': ['babel'], 
     '../src/**/*.less': ['babel'] 
    }, 
    webpack: { //kind of a copy of your webpack config 
     devtool: 'inline-source-map', //just do inline source maps instead of the default 
     module: { 
     loaders: [ 
      { 
      test: /\.js$/, 
      loader: 'babel', 
      exclude: /node_modules/, 
      // query: { 
      // presets: ['es2015', 'react'] 
      // } 
      }, 
      { 
      test: /\.json$/, 
      loader: 'json', 
      },{ 
      test: /\.less$/, 
      loader: "style!css!less", 
      }, 
     ] 
     }, 
     externals: { 
     'react/lib/ExecutionEnvironment': true, 
     'react/lib/ReactContext': true, 
     'react/addons': true 
     } 
    }, 

    webpackServer: { 
     noInfo: true //please don't spam the console when running in karma! 
    }, 

    plugins: [ 
     'karma-webpack', 
     'karma-jasmine', 
     'karma-sourcemap-loader', 
     'karma-chrome-launcher', 
     'karma-phantomjs-launcher', 
     'karma-mocha', 
     'karma-chai', 
     'karma-mocha-reporter', 
     'karma-babel-preprocessor' 
    ], 


    babelPreprocessor: { 
     options: { 
     presets: ['es2015', 'react'], 
     sourceMap: 'inline' 
     } 
    }, 
    reporters: ['mocha'], 

    // reporter options 
    mochaReporter: { 
     colors: { 
     success: 'blue', 
     info: 'bgGreen', 
     warning: 'cyan', 
     error: 'red' 
     }, 
     symbols: { 
     success: '+', 
     info: '#', 
     warning: '!', 
     error: 'x' 
     } 
    }, 

    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome'], 
    singleRun: false, 
    }) 
}; 

Odpowiedz

0

myślę, że wykomentowane sekcję presets swojej ładowarki. Bez wstępnego ustawienia babel es2015 może nie wiedzieć, jak radzić sobie z instrukcjami import. (import jest częścią modułów ES6, ale nie jest jeszcze standardem w węźle.) Czy próbowałeś odkomentować blok query i presets?

Powiązane problemy