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