React Jest示例不起作用

试图运行JesttestingReact代码的示例(从https://github.com/facebook/jest/tree/master/examples/react ),我得到以下错误:

> @ test /home/aizquier/jest/examples/react > jest Using Jest CLI v0.7.1 FAIL __tests__/CheckboxWithLabel-test.js ● Runtime Error SyntaxError: /home/aizquier/jest/examples/react/__tests__/CheckboxWithLabel-test.js: Unexpected token (15:6) npm ERR! Test failed. See above for more details. 

testing在文件CheckboxWithLabel-test.js的第15行失败:

 jest.dontMock('../CheckboxWithLabel'); import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react-addons-test-utils'; const CheckboxWithLabel = require('../CheckboxWithLabel'); describe('CheckboxWithLabel', function() { it('changes the text after click', function() { // Render a checkbox with label in the document var checkbox = TestUtils.renderIntoDocument( <CheckboxWithLabel labelOn="On" labelOff="Off" /> ); var checkboxNode = ReactDOM.findDOMNode(checkbox); // Verify that it's Off by default expect(checkboxNode.textContent).toEqual('Off'); // Simulate a click and verify that it is now On TestUtils.Simulate.change(TestUtils.findRenderedDOMComponentWithTag(checkbox, 'input')); expect(checkboxNode.textContent).toEqual('On'); }); }); 

显然,处理.jsx的预处理器不工作。 package.json如下所示:

 { "dependencies": { "react": "~0.14.0", "react-dom": "~0.14.0" }, "devDependencies": { "react-addons-test-utils": "~0.14.0", "babel-jest": "*", "jest-cli": "*" }, "scripts": { "test": "jest" }, "jest": { "scriptPreprocessor": "./node_modules/babel-jest", "unmockedModulePathPatterns": [ "./node_modules/react", "./node_modules/react-dom", "./node_modules/react-addons-test-utils", "./node_modules/fbjs" ] } } 

我的节点是v4.2.2,npm是3.3.12。

有任何想法吗??

我遇到了同样的问题。 看起来这是由于最近发布的Babel 6引起的一个问题。它正在被跟踪 ,希望很快就会有一个修复!

同时,你可以在你的package.json回到babel-jest的早期版本。 例如,尝试^5.3.0

如果你使用的是Babel 6,没有默认转换,所以你需要添加一些预置。 不知道你是否可以在'package.json'中做到这一点,但我添加了'.babelrc'文件与'react'和'es2015'预设,并对其进行sorting。 请参阅http://babeljs.io/docs/plugins/preset-react/