2016-03-12 20 views
1

我使用阵营JSXES6单元测试阵营JSX ES6

有人知道我的代码有什么问题吗?

我想这个测试通过与Karma-Runner但什么是错的:

let React = require("react"); 
let TestUtils = React.addons.TestUtils; 
let expect = require("expect"); 

/* global describe */ 
/* global it */ 
describe("Header", function() { 
    it("renders without problems", function() { 
    let component = <Header/>; 
    let header = TestUtils.renderIntoDocument(component); 

    expect(header).toExist(); 
    }); 
}); 

$ karma start命令,这是错误:

Module build failed: SyntaxError: /Users/aralroca/react-es6-boilerplate/app/tests/components/header.test.js: Unexpected token (9:20) 
    7 | describe("Header", function() { 
    8 | it("renders without problems", function() { 
> 9 |  let component = <Header/>; 
    |     ^
    10 |  let header = TestUtils.renderIntoDocument(component); 
    11 | 
    12 |  expect(header).toExist(); 

太谢谢你了。


编辑

karma.conf.js

module.exports = function (config) { 
    config.set({ 
    browsers: [ process.env.CONTINUOUS_INTEGRATION ? "Firefox" : "Chrome" ], 
    files: [ 
     "tests.bundle.js" 
    ], 
    frameworks: ["chai", "mocha"], 
    plugins: [ 
     "karma-chrome-launcher", 
     "karma-chai", 
     "karma-mocha", 
     "karma-sourcemap-loader", 
     "karma-webpack" 
    ], 
    preprocessors: { 
     "tests.bundle.js": ["webpack", "sourcemap"] 
    }, 
    reporters: ["dots"], 
    singleRun: true, 
    webpack: { 
     devtool: "inline-source-map", 
     module: { 
     loaders: [ 
      { 
      exclude: /node_modules/, 
      loader: "babel-loader", 
      test: /\.jsx?$/ 
      } 
     ] 
     } 
    }, 
    webpackMiddleware: { 
     noInfo: true 
    } 
    }); 
}; 

回答

0

如果你想在你需要的电缆铺设karma-babel-preprocessor测试使用JSX。

这会在执行之前运行babel来测试测试。否则,当业力运行测试时,ES6或JSX语法将导致错误。

+0

我像“插件”一样安装并添加到'karma.conf.js'中。但是没有...同样的错误... –

+0

你可以发布你的'karma.conf.js'吗? –

+0

增加:)谢谢@达文Tryon –