首页 文章

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

提问于
浏览
1

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

src/foo.js

exports.bar = 23;

spec/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,通过在 spec 目录中包含一个文件 jasmine.json ,我可以用 jasmine cli运行测试 . 有没有什么干净的方法来运行同样的测试从grunt?

1 回答

  • 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任务一起使用 .

相关问题