bre*_*son 9 mocha.js ecmascript-6 reactjs gulp enzyme
我试图通过使用mocha和酶来更新我的单元测试.我正在测试的代码是在ES6中,使用JSX和React.
我在测试脚本中无法让mocha在JSX上出错.
测试脚本:
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
import SamplePageMain from '../SamplePageMain';
describe('<SamplePageMain />', () => {
var samplePage = shallow(<SamplePageMain />);
it('should render', function () {
assert.notEqual(samplePage, null);
});
Run Code Online (Sandbox Code Playgroud)
});
gulpfile.js:
require('babel-core/register');
...
gulp.task('test', function() {
return gulp.src('scripts/**/test/*.js', {read: false})
.pipe(mocha());
});
Run Code Online (Sandbox Code Playgroud)
输出是:
gulp test
[16:19:06] Using gulpfile ~/dev/bikini/gulpfile.js
[16:19:06] Starting 'test'...
[16:19:06] 'test' errored after 62 ms
[16:19:06] SyntaxError in plugin 'gulp-mocha'
Message:
/Users/me/dev/bikini/scripts/components/test/samplePageMain.js: Unexpected token (9:26)
Details:
pos: 206
loc: [object Object]
_babel: true
codeFrame: 7 |
8 |
> 9 | var samplePage = shallow(<SamplePageMain />);
| ^
10 |
11 | it('should render', function () {
12 | assert.notEqual(samplePage, null);
Stack:
SyntaxError: /Users/me/dev/bikini/scripts/components/test/samplePageMain.js: Unexpected token (9:26)
7 |
8 |
> 9 | var samplePage = shallow(<SamplePageMain />);
| ^
10 |
11 | it('should render', function () {
12 | assert.notEqual(samplePage, null);
at Parser.pp.raise (/Users/me/dev/bikini/node_modules/babel- register/node_modules/babel-core/node_modules/babylon/index.js:1425:13)
at Parser.pp.unexpected (/Users/me/dev/bikini/node_modules/babel- register/node_modules/babel-core/node_modules/babylon/index.js:2907:8)
at Parser.pp.parseExprAtom (/Users/me/dev/bikini/node_modules/babel-register/node_modules/babel- core/node_modules/babylon/index.js:754:12)
at Parser.pp.parseExprSubscripts (/Users/me/dev/bikini/node_modules/babel-register/node_modules/babel- core/node_modules/babylon/index.js:509:19)
at Parser.pp.parseMaybeUnary (/Users/me/dev/bikini/node_modules/babel-register/node_modules/babel- core/node_modules/babylon/index.js:489:19)
at Parser.pp.parseExprOps (/Users/me/dev/bikini/node_modules/babel-register/node_modules/babel- core/node_modules/babylon/index.js:420:19)
at Parser.pp.parseMaybeConditional (/Users/me/dev/bikini/node_modules/babel-register/node_modules/babel- core/node_modules/babylon/index.js:402:19)
at Parser.pp.parseMaybeAssign (/Users/me/dev/bikini/node_modules/babel-register/node_modules/babel- core/node_modules/babylon/index.js:365:19)
at Parser.pp.parseExprListItem (/Users/me/dev/bikini/node_modules/babel-register/node_modules/babel- core/node_modules/babylon/index.js:1232:16)
at Parser.pp.parseCallExpressionArguments (/Users/me/dev/bikini/node_modules/babel-register/node_modules/babel- core/node_modules/babylon/index.js:585:20)
Run Code Online (Sandbox Code Playgroud)
通过browserify运行源代码并将其放入测试目录中以证明它不是mocha /酶本身,我已经成功运行了测试.我的问题只是试图让gulp魔法正确.
azi*_*ium 19
这对于Babel 6的用户来说是一个非常普遍的问题,Babel 6本身(babel-core)没有做任何事情.它要求在转化过程中将变换/插件送入其中.
Babel提供捆绑的常见插件作为预设.React项目的共同点是babel-preset-2015,babel-preset-react和babel-preset-stage-0.在安装它们之后,添加一个如下所示的.babelrc配置文件:
{
"presets": ["react", "es2015", "stage-0"]
}
Run Code Online (Sandbox Code Playgroud)
对于mocha与gulp checkout这个堆栈gulp-mocha如何传递编译器标志?.
在这里阅读关于设置Babel 6的一般信息https://babeljs.io/blog/2015/10/31/setting-up-babel-6
| 归档时间: |
|
| 查看次数: |
5774 次 |
| 最近记录: |