gulp-mocha如何传递编译器标志?
gulp-mocha how to pass the compilers flag?
我正在尝试使用 gulp-mocha module,但找不到传递编译器标志的好方法。有没有办法将其包含在我的 gulp 任务中?也许以某种方式在一个单独的管道中?
示例 if 运行 来自命令行的 mocha(工作正常)
mocha --compilers .:my_compiler.js test/**/*.js
使用 gulp-mocha 的示例(但我可以在哪里指定编译器)?
gulp.task('test', function () {
gulp.src(["test/**/*.js"], {
read: false
})
.pipe(mocha({
reporter: 'spec'
}))
.pipe(exit());
});
我在 gulp-mocha 插件下没有看到编译器选项,所以我想我需要通过某种方式通过管道附加文本来添加编译器?
我刚刚注意到文档处于底部状态 -
For CoffeeScript support, add require('coffee-script') with CoffeeScript 1.6- or require('coffee-script/register') with CoffeeScript 1.7+.
我在 gulp 文件 require('./my_compiler');
的顶部为我自己的编译器添加了一个 require 语句,这似乎有效。
在 gulpfile 的开头使用 require('babel-core/register');
Justin Maat,您不需要修改 gulpfile.js
。从 CLI
:
使用 gulp
时,您只需要使用 --require
### before
gulp test
### after
gulp --require babel/register test
你注意到区别了吗?为了节省您的击键次数,请将此添加到您的 .bashrc
或 .zshrc
:
alias gulp='gulp --require babel/register'
下次,您可以正常使用 gulp
gulp test
var mocha = require('gulp-mocha');
var babel = require('babel/register');
gulp.task('mocha', function() {
return gulp.src(['test/**/*.js'])
.pipe(mocha({
compilers: {
js: babel
}
}));
});
最佳答案依赖于使用 require 钩子。这仅适用于当前进程,如果您 运行 Mocha 在单独的进程中进行测试,则不会,如 gulp-spawn-mocha
.
这是将编译器传递到 mocha 模块的方式:
return mocha({
compilers: [
'js:babel-core/register',
]
});
Mocha 将遍历 compilers
属性 的元素并在 :
上拆分。它将把它之前的字符串视为后面的扩展,并将它之后的所有内容注入到 require()
语句中。
对于现在尝试的任何人
gulp.task('test-mocha', function() {
return gulp.src(['tests/acceptance/*.js'], {read: false})
.pipe(
mocha({
compilers: 'js:babel-core/register',
reporter: 'landing'
})
)
.on('error', gutil.log);
});
并在 gulp 文件之上 (gulpfile.js)
var gulp = require('gulp');
var gutil = require('gulp-util');
var mocha = require('gulp-mocha');
var babel = require('babel-register');
运行 你的测试应该有效
gulp test-mocha
我正在尝试使用 gulp-mocha module,但找不到传递编译器标志的好方法。有没有办法将其包含在我的 gulp 任务中?也许以某种方式在一个单独的管道中?
示例 if 运行 来自命令行的 mocha(工作正常)
mocha --compilers .:my_compiler.js test/**/*.js
使用 gulp-mocha 的示例(但我可以在哪里指定编译器)?
gulp.task('test', function () {
gulp.src(["test/**/*.js"], {
read: false
})
.pipe(mocha({
reporter: 'spec'
}))
.pipe(exit());
});
我在 gulp-mocha 插件下没有看到编译器选项,所以我想我需要通过某种方式通过管道附加文本来添加编译器?
我刚刚注意到文档处于底部状态 -
For CoffeeScript support, add require('coffee-script') with CoffeeScript 1.6- or require('coffee-script/register') with CoffeeScript 1.7+.
我在 gulp 文件 require('./my_compiler');
的顶部为我自己的编译器添加了一个 require 语句,这似乎有效。
在 gulpfile 的开头使用 require('babel-core/register');
Justin Maat,您不需要修改 gulpfile.js
。从 CLI
:
gulp
时,您只需要使用 --require
### before
gulp test
### after
gulp --require babel/register test
你注意到区别了吗?为了节省您的击键次数,请将此添加到您的 .bashrc
或 .zshrc
:
alias gulp='gulp --require babel/register'
下次,您可以正常使用 gulp
gulp test
var mocha = require('gulp-mocha');
var babel = require('babel/register');
gulp.task('mocha', function() {
return gulp.src(['test/**/*.js'])
.pipe(mocha({
compilers: {
js: babel
}
}));
});
最佳答案依赖于使用 require 钩子。这仅适用于当前进程,如果您 运行 Mocha 在单独的进程中进行测试,则不会,如 gulp-spawn-mocha
.
这是将编译器传递到 mocha 模块的方式:
return mocha({
compilers: [
'js:babel-core/register',
]
});
Mocha 将遍历 compilers
属性 的元素并在 :
上拆分。它将把它之前的字符串视为后面的扩展,并将它之后的所有内容注入到 require()
语句中。
对于现在尝试的任何人
gulp.task('test-mocha', function() {
return gulp.src(['tests/acceptance/*.js'], {read: false})
.pipe(
mocha({
compilers: 'js:babel-core/register',
reporter: 'landing'
})
)
.on('error', gutil.log);
});
并在 gulp 文件之上 (gulpfile.js)
var gulp = require('gulp');
var gutil = require('gulp-util');
var mocha = require('gulp-mocha');
var babel = require('babel-register');
运行 你的测试应该有效
gulp test-mocha