2016-03-12 64 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 –