如何从grunt执行节点模块的jasmine测试

时间:2015-05-20 09:43:02

标签: javascript node.js gruntjs jasmine

我想在Grunt构建中为node.js模块运行一些Jasmine 2.x测试。我的设置如下:

的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,它不受维护,包含Jasmine 1.3.1,所以这不是一个选项。

Jasmine supports node.js out of the box,通过在jasmine.json目录中包含文件spec,我可以使用jasmine cli运行测试。是否还有 clean 方式从grunt运行相同的测试?

1 个答案:

答案 0 :(得分: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"
    ]);
};

这将使您可以使茉莉花保持最新,并将其与其他grunt任务一起使用。