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/