私はgruntを使用してjQueryプラグインをパッケージ化しています。QUnitテストの一部として、一貫した結果を得るには、テストを開始する前にノードコマンドを実行する必要があります(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
これにより、タイムゾーンを設定するタスクが定義されます。はい、タイムゾーンの設定には問題がありますが、アドバイスは、1回だけ行う限り、問題ないようです:https: //groups.google.com/d/msg/nodejs/rt8EFR6gdi8/i2Fdp2vDPFQJ
TZは一度だけ設定でき、それ以上の変更は反映されません。
幸いなことに、これは私のユースケースには十分であり、私にとっては問題なく機能します。