Javascript 如何从grunt为节点模块执行jasmine测试
我想在Grunt构建中为node.js模块运行一些Jasmine 2.x测试。我的设置如下所示: src/foo.jsJavascript 如何从grunt为节点模块执行jasmine测试,javascript,node.js,gruntjs,jasmine,Javascript,Node.js,Gruntjs,Jasmine,我想在Grunt构建中为node.js模块运行一些Jasmine 2.x测试。我的设置如下所示: src/foo.js exports.bar = 23; var foo = require("../src/foo.js"); define("foo", function() { it("exports bar as 23", function() { expect(foo.bar).toBe(23); }); }); spec/foo.spec.js exports.ba
exports.bar = 23;
var foo = require("../src/foo.js");
define("foo", function() {
it("exports bar as 23", function() {
expect(foo.bar).toBe(23);
});
});
spec/foo.spec.js
exports.bar = 23;
var foo = require("../src/foo.js");
define("foo", function() {
it("exports bar as 23", function() {
expect(foo.bar).toBe(23);
});
});
与节点模块系统不可用,我得到
>> ReferenceError: Can't find variable: require at
>> spec/foo.spec.js:1
有,但这取决于哪个是未维护的,包括Jasmine 1.3.1,所以这不是一个选项
Jasmine,通过在spec
目录中包含一个文件Jasmine.json
,我可以使用Jasmine
cli运行测试。还有什么干净的方法可以从grunt运行相同的测试吗?您可以使用它,它只会像在命令行上键入一样执行值:
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"
]);
};
这将允许您保持jasmine的最新状态,并将其用于其他grunt任务。完美,这很有效。当测试失败时,jasmine进程将退出,并返回一个错误代码,从而导致grunt构建失败。