पर परिणाम असाइन करें मैं मोचा-रन परीक्षणों का एक सूट प्रबंधित करने के लिए गड़बड़ी का उपयोग कर रहा हूं। मोचा टेस्ट सूट में आवश्यक चीजों में से एक यह है कि कुछ पर्यावरण चर सेट किए जाते हैं ताकि टेस्ट चलाने वाले डेवलपर के पर्यावरण के आधार पर परीक्षण ठीक से निष्पादित किए जा सकें। इन पर्यावरण चरों में से प्रत्येक के पास प्रत्येक डेवलपर की मशीन पर एक अलग मूल्य होगा, इसलिए हम उस पर्यावरण चर के लिए उस मान को वापस करने के लिए एक बैश स्क्रिप्ट निष्पादित करते हैं जिसे हम सेटिंग कर रहे हैं।gruntfile में खोल स्क्रिप्ट निष्पादित करें और परिणाम
मैं स्क्रिप्ट चलाने के लिए grunt.util.spawn का उपयोग कर रहा हूं और इसके परिणाम को मेरे gruntfile में परिभाषित चर के लिए असाइन कर रहा हूं, और फिर उस मान के साथ पर्यावरण चर सेट करने के लिए grunt-env।
module.exports = (grunt) ->
envvar = ''
grunt.initConfig
pkg: grunt.file.readJSON('package.json')
env:
dev:
ENV_VAR: envvar
simplemocha:
options:
timeout: 30000
reporter: 'spec'
compilers: 'coffee:coffee-script'
all:
src: ['Tests/**/*.coffee']
grunt.registerTask 'init', ->
done = this.async
command =
cmd: './bin/get_envvar.sh'
grunt.util.spawn command, (error, result, code) ->
envvar = result
console.log 'envvar: ' + envvar
done
grunt.registerTask 'test', ['init', 'env', 'simplemocha']
इस पर अमल करने के लिए, मैं फोन
/path/to/grunt test
दुर्भाग्य से ..., हालांकि init रन कॉलबैक उसमें पाने के लिए प्रतीत नहीं होता: नीचे मेरी gruntfile (coffeescript में) का एक उदाहरण है निष्पादित, तो envvar कभी सेट नहीं हो जाता है। विचित्र रूप से, अगर मैं अपने परीक्षणों में लॉगिंग अक्षम करता हूं, तो कॉलबैक कॉल किया जाता है, लेकिन केवल मेरे env और simplemocha कार्यों को बंद कर दिया गया है। गड़बड़ी के कार्यों की मेरी समझ यह है कि वे अवरुद्ध हो रहे हैं, इसलिए मैं अगले कार्य पर जाने से पहले इनिट कार्य को पूरा करना होगा (यहां तक कि एसिंक फ़ंक्शन के साथ)।
कोई विचार?
नीचे वोट के लिए क्या कारण है? अगर ऐसा कुछ है जो मैं अपना प्रश्न बनाने और बेहतर जवाब देने के लिए कर सकता हूं, तो मुझे अच्छा लगेगा! – Clandestine