将我尝试过的网站拼凑起来
var gulp = require('gulp');
var gutil = require('gulp-util');
var coffee = require('gulp-coffee');
var mocha = require('gulp-mocha');
gulp.task('test', function() {
return gulp.src(['tests/*.coffee'], { read: false })
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe(mocha({
reporter: 'spec',
globals: {
should: require('should')
}
}));
});
这总是在我的tests / test.coffee文件的第一行给出错误
require 'should'
describe "something", ->
it "fails", -> true.should.equal false
此错误:
(function (exports, require, module, __filename, __dirname) { require 'should'
^^^^^^^^
此外,在一项任务中执行此操作似乎并不正确。每个人都觉得它应该是一个取决于前一个输出的任务。
如何将所有这些部分组合在一起?
答案 0 :(得分:3)
我的gulp配置与你的配置差不多,我所做的就是:
npm install --save-dev should
--save-dev
部分是可选的,但我希望将我的依赖项存储到package.json
文件中,以便于移植。
修改:
我注意到你第一次将它用于咖啡。如果使用Gulpfile.coffee
(您猜对了,Gulpfile
写了CoffeeScript
),则不需要使用此功能,mocha会将其作为CoffeeScript
文件正常运行。
这是test task
中的Gulpfile.coffee
:
gulp.task 'test', - >
gulp.src(testSources,
read: false
)
.pipe(mocha(
reporter: 'spec'
globals:
should: require('should')
))
要让Gulp解析Gulpfile.coffee
,请将其另存为 Gulpfile.js
require('coffee-script/register');
require('./Gulpfile.coffee');
编辑2:
我注意到JavaScript
版本没有按预期工作。
我的仅建议是使用Gulpfile
中写的CoffeeScript
,这样就可以了。我可以与我分享我的速度,但手动转换为CoffeeScript
只需不到5分钟,甚至可以使用Js2coffee更快。
或者看看这个Gulpfile.js(不是我的作品)。
或使用Chai并使用以下代码:
chai = require 'chai'
chai.should() # add should to Object.prototype
describe "Test", ->
it "should pass", ->
true.should.equal true
答案 1 :(得分:0)
运行coffeescript规范所需要的只是npm install coffee-script
。
无需在coffeescript中使用gulpfile。
如果您安装了coffeesctipt,那么就足以在您的gulpfile中执行这样的测试任务:
gulp.task('test', function(){
return gulp.src('./specs/**/*.spec.coffee')
.pipe(mocha({reporter:'nyan'}));
});
所以,不需要通过gulp-mocha管道* .coffee文件