我正在尝试用Mocha测试框架对我用Gulp构建的一些功能进行单元测试。我是单元测试的新手,一直以gulp-concat
测试为例。
然而,我遇到了一个问题,其中gulp.src
没有找到任何与mocha
运行时。我已经尝试从it
单独运行确切的代码,它工作得很好。使用mocha
运行,gulp.src
没有向流中输入任何内容。
var sample = Path.join(__dirname, 'sample.html');
describe('feature', function() {
it('should do something', function() {
gulp.src(sample)
.pipe((function() {
var stream = through.obj(function(file, enc, callback) {
console.log(file.path);
this.push(file);
callback();
});
return stream;
})());
});
});
您的测试是异步的,所以您必须告诉Mocha它是异步的,并且您必须在测试结束时告诉Mocha。
你通过给it
的回调添加一个参数来告诉Mocha它是异步的:
it('should do something', function(done) {
您通过在适当的时候调用这个额外的done()
参数来告诉Mocha测试何时完成。我回到您使用的示例,看到assert.end(done)
在这里被用于此。所以你的代码应该编辑成:
var gulp = require("gulp");
var path = require("path");
var through = require("through2");
var assert = require('stream-assert');
var sample = path.join(__dirname, 'sample.html');
describe('feature', function() {
it('should do something', function(done) {
gulp.src(sample)
.pipe((function() {
var stream = through.obj(function(file, enc, callback) {
console.log(file.path);
this.push(file);
callback();
});
return stream;
})())
.pipe(assert.end(done));
});
});