[英]How to test a Grunt task? Understanding and best practices
我有點不了解如何編寫復雜的Gruntfile.js
並將其與測試Gruntfile.js
使用。 我是否以正確的方式使用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']);
我知道如何在給出options
對象時檢查tmp/
文件夾是否處於所需狀態。
問題在於把事情放在一起。
我會問模板代碼作為答案,npo需要放置工作示例。
PS:你可以提出另一個測試工具,nodeunit不是必須的。
PPS:垃圾,我現在可以用普通的javascript寫這個! 也許我錯了,我想把Grunt放進單元測試中? 但我想測試我的任務在真實環境中如何工作,從Grunt傳遞不同的選項......
您可能希望查看grunt-lintspaces配置。 測試看起來像這樣 ,這似乎是一個很好的方法。 grunt-lintspaces使用nodeunit,但現在似乎有很多插件。
如果你不想測試實際的grunt輸出而不是功能,你可以使用grunt-mocha-test - https://github.com/pghalliday/grunt-mocha-test我用於grunt-available-tasks測試 。 我更喜歡描述個人測試風格,它讀得很好; 使用它的好處是你實際測試你的插件做什么,而不包括你的Gruntfile中的大量配置; 即測試代碼應該在測試中。
Grunt已經過很好的測試,因此測試其配置是否有效是沒有意義的。 只需測試您自己的插件的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.