2016-12-01 6 views
7

私はKarma、Webpack、酵素、PhantomJSを使用して反応プロジェクトをテストします。私は、Karma、Webpack、PhantomJSでユニットテストを実行すると、 'ReferenceError:変数を見つけることができません:require'エラーを修正するには

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

をテストケースを実行するためのコマンドの下に実行すると、私は以下のエラーました:test.jsのソースコードのLINE3に

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

を、私は以下、requireを使用していません

import { expect } from 'chai'; 

私はPhantomJSがこのエラーをよく耳にします。私はあなたがあなたのローダーのpresetsセクションをコメントアウトしたと思う

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, 
    }) 
}; 

答えて

0

以下は私のカルマのconfファイルです。 es2015プリセットがなければ、importステートメントの処理方法がわからないことがあります。 (importはES6モジュールの一部ですが、ノードではまだ標準ではありません)queryブロックとpresetsブロックのコメントを外しましたか?

関連する問題