簡體   English   中英

如何測試Grunt任務? 理解和最佳實踐

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM