2015-05-20 82 views
1

我想爲Grunt構建中的node.js模塊運行一些Jasmine 2.x測試。我的設置是這樣的:如何從grunt執行節點模塊的茉莉花測試

的src/foo.js

exports.bar = 23; 

規格/ foo.spec.js

var foo = require("../src/foo.js"); 

define("foo", function() { 
    it("exports bar as 23", function() { 
    expect(foo.bar).toBe(23); 
    }); 
}); 

隨着grunt-contrib-jasmine節點模塊系統不可用,我得到

>> ReferenceError: Can't find variable: require at 
>> spec/foo.spec.js:1 

grunt-jasmine-node,但它取決於jasmine-node這是不維護和包括茉莉花1.3.1,所以這不是一個選項。

茉莉花supports node.js out of the box,通過在spec目錄中的文件jasmine.json,我可以運行與jasmine CLI測試。是否有任何乾淨的方式來從grunt運行相同的測試?

回答

2

你可以使用grunt-exec,就好像在命令行中鍵入剛剛執行值:

module.exports = function (grunt) { 

    grunt.initConfig({ 

     exec: { 
      jasmine: "jasmine" 
     }, 

     env: { 
      test: { 
       NODE_ENV: "test" 
      } 
     } 
    }); 

    grunt.loadNpmTasks("grunt-exec"); 
    grunt.loadNpmTasks("grunt-env"); 

    grunt.registerTask("test", [ 
     "env:test", 
     "exec:jasmine" 
    ]); 
}; 

這將讓你保持茉莉花最新以及與其他咕嚕任務使用它。

+0

完美,有效。當測試失敗時,茉莉花進程退出並顯示一個錯誤代碼,這反過來讓咕嚕的構建失敗。 – ralfstx