我正在使用 grunt 来打包我的 jQuery 插件。作为 QUnit 测试的一部分,我需要在测试开始之前运行 node 命令以获得一致的结果(就像process.env.TZ = 'Europe/London'
我的插件处理时区一样,因此不同时区的结果会有所不同)。
所以我的问题是:如何在 qunit 测试中运行特定于节点的命令?
谢谢。
创建您自己的 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
注意:未经测试。
好吧,经过更多研究,我遇到了 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,不会获取进一步的更改。
幸运的是,这对我的用例来说已经足够了,而且对我来说也很好用。