我對理解如何編寫複雜的Gruntfile.js
並在測試中使用它有點困惑。我是否正確使用Grunt?我想問社區尋求幫助,並以其他方式作出貢獻。如何測試Grunt任務?理解和最佳實踐
我正在爲Grunt編寫一個新任務,並希望在Github和npm上爲廣泛的受衆推出它。我想爲此任務進行自動化測試(並且我想學習如何正確執行它!)。
我想測試不同的選項組合(現在大約15個)。所以,我多次:
- 運行清理
- 運行我的下一個選項設置任務
- 運行測試和傳球選擇對象來測試
一些非工作的代碼以便更好地理解:
Gruntfile:
grunt.initConfig({
test_my_task: {
testBasic: {
options: {
//first set
}
},
testIgnore: {
options: {
//another set
}
},
//...
}
clean: {
tests: ['tmp'] // mmm... clean test directory
},
// mmm... unit tests.
nodeunit: {
tests: ['test/*.js'] //tests code is in 'tests/' dir
}
});
grunt.registerTask('test', ['test_my_task']);
我知道如何檢查tmp/
文件夾是否在給定options
對象時處於所需狀態。
問題是把事情放在一起。
我會問只是模板代碼作爲答案,npo需要把工作的例子。
PS:你可以提出另一種測試工具,nodeunit不是必須的。
PPS:廢話,我現在可以用普通的javascript寫這個了!也許我做錯了,我想把Grunt放入單元測試中?但我想測試我的任務如何在實際環境中使用Grunt傳遞的不同選項...
我發現了Grunt API作爲resque !!!在JavaScript中,我編程構造任何配置排列或初始狀態,然後將它們傳遞給grunt來完成這項工作。結果很簡單:從javascript調用grunt任務(例如nodeunit),然後檢查工作結果。 – Dan