运行节点命令作为grunt驱动的QUnit测试的一部分

时间:2013-02-16 17:58:19

标签: node.js qunit gruntjs

我正在使用grunt打包我的jQuery插件。作为QUnit测试的一部分,我需要在测试开始之前运行一个node命令以获得一致的结果(类似process.env.TZ = 'Europe/London',因为我的插件处理时区,因此不同时区的结果会有所不同)。

所以我的问题是:如何在qunit测试中运行特定于节点的命令?

感谢。

2 个答案:

答案 0 :(得分:0)

创建你自己的grunt任务并从里面调用qunit任务:

var exec = require('child_process').exec;

grunt.registerTask('qunit-plus', 'Custom qunit task', function() {
    exec('/usr/bin/mycmd', function(err, stdout, stderr) {
        grunt.task.run('qunit');
    });
});

然后用:

调用它
$ grunt qunit-plus

注意:未经测试。

答案 1 :(得分:0)

嗯,经过一番研究后,我遇到了grunt-env @ https://github.com/onehealth/grunt-env

允许在gruntfile中定义不同的环境任务,例如

env: {
    setTZ : {
        TZ : 'Europe/London'
    }
}

将定义任务env:setTZ以设置时区。是的,虽然设置时区可能会有问题,但建议似乎是只要你只做一次,你就可以了:https://groups.google.com/d/msg/nodejs/rt8EFR6gdi8/i2Fdp2vDPFQJ

  

您只需设置一次TZ,就不会再获得更改。

幸运的是,这对我的用例来说足够了,它对我来说效果很好。