1
Q
测试咕噜任务
A
回答
1
不是一个优雅的解决方案,但我采取了安装我的依赖关系(npm install
)的方法,从而运行相应的grunt任务(例如grunt less
),然后在该操作后编写测试逻辑。我已经使用嵌套exec调用此。
describe('less grunt tasks tests', function() {
var prompts = {
workFolder: 'temp',
fiddleDesc: 'mocha test'
};
var testGlobal = {};
beforeEach(function(done) {
testGlobal.app = helpers.run(path.join(__dirname, '../app'))
.inTmpDir(function(dir, err) {
if(err) { done(err); return; }
testGlobal.dir = dir;
// console.log(dir);
})
.withArguments(['skip-install'])
.withOptions({ less: true })
.withPrompts(prompts)
.on('end', function(){
done();
});
});
it('should modify app/styles/style.css', function(done){
this.timeout(60000 * 10); //10 minutes - my network is f**ked up
var opts = {
cwd : testGlobal.dir,
env: process.env,
detached: true
};
var gen = testGlobal.app.generator;
var devdeps = gen.devDependencies.join(' ');
var rootPath = testGlobal.dir;
var getPath = function(fpath) {
var s = path.join(rootPath, fpath);
// console.log(s); ;
return s;
};
exec('npm install ' + devdeps, opts, function(err, stdout, stderr) {
if(err) {
done(err);
return;
}
var h1 = fs.readFileSync(getPath('app/less/h1.less'), 'utf8');
var css = fs.readFileSync(getPath('app/styles/style.css'), 'utf8');
// expect(css).to.not.contain(h1);
expect(css).to.not.contain('h1');
exec('grunt less', opts, function(e, out, serr){
if(e) {
done(e);
return;
}
// console.log(out);
var h1 = fs.readFileSync(getPath('app/less/h1.less'), 'utf8');
var css = fs.readFileSync(getPath('app/styles/style.css'), 'utf8');
// expect(css).to.contain(h1); //this expect fails since for some reason \r are stripped out
expect(css).to.contain('h1');
done();
});
});
});
});
有关更多参考,您可以在我参与的repo中看到更多测试代码。 Ps:我很感激你对我采取的方法发表的意见。
相关问题
- 1. 咕噜咖啡多任务?
- 2. 咕噜运行任务
- 3. 咕噜任务相关
- 4. 咕噜this.files非多任务
- 5. 咕噜多任务建设
- 6. 咕噜任务重复键
- 7. 保持任务咕噜任务打开
- 8. 咕噜错误:无法找到模块“负载咕噜任务”
- 9. Yeoman:“咕噜咕噜”任务和相对路径
- 10. 咕噜:咕噜毂不看
- 11. 咕噜:任务“默认”未找到
- 12. 咕噜不能找到任务
- 13. magento2添加新的咕噜任务
- 14. 咕噜干净的任务挂起
- 15. 堆栈跟踪从咕噜任务
- 16. 咕噜手表任务运行
- 17. 分裂咕噜手表任务
- 18. 咕噜短粗和量角器任务
- 19. 咕噜丑化任务失败
- 20. 动态生成咕噜任务名称?
- 21. 多咕噜任务未发现
- 22. 延迟计算咕噜任务选项
- 23. 任务 “CONCAT” 不咕噜发现窗户
- 24. 如何:咕噜任务模块化
- 25. 咕噜postcss任务排除文件
- 26. 咕噜副本任务失常
- 27. 等待异步咕噜任务完成
- 28. 咕噜任务退出得早
- 29. 咕噜任务之间传递参数
- 30. 为同一任务咕噜两次
你想要做什么,你*做不到? Grunt任务通常在命令行中调用。摩卡测试可以用来测试命令行工具。您的Grunt任务由Yeoman生成。据推测,这些都是文本文件。摩卡测试可以读取文本文件并检查是否如预期的那样。那么你究竟做了什么呢? – Louis 2014-10-06 11:21:39