मेरे पास एक टेस्ट सूट है जो पाइथन में लिखे गए बड़े निर्माण ढांचे के हिस्से के रूप में निष्पादित होता है। कुछ परीक्षणों में पैरामीटर की आवश्यकता होती है, जिन्हें मैं पर्यावरण चर का उपयोग करके पास करना चाहता हूं।नोसेटेट फ्रेमवर्क: मेरे परीक्षणों में पर्यावरण चर कैसे पारित करें?
स्पष्ट रूप से नोसेटेट रनर के पास env
पैरामीटर है, जो मैं चाहता हूं, according to the documentation. ऐसा लगता है कि यह ऐसा नहीं लगता है कि यह चाहिए? ,
#!/usr/bin/env python
# pip install nose
import os, nose, unittest
class Test(unittest.TestCase):
def test_env(self):
self.assertEquals(os.environ.get('HELLO'), 'WORLD')
if __name__ == '__main__':
nose.run(env={'HELLO': 'WORLD'})
दावे विफल रहता है क्योंकि env
पैरामीटर परीक्षण के लिए पारित नहीं होता है:
यहाँ एक न्यूनतम परीक्षण स्क्रिप्ट है कि समस्या एक मिसाल है। क्या किसी को पता है क्यों?
एनबी: मैं सांत्वना nosetests
उपकरण के लॉन्च के साथ समस्या को हल काम किया:
#!/usr/bin/env python
import sys, os, nose, unittest, subprocess
class Test(unittest.TestCase):
def test_env(self):
self.assertEquals(os.environ.get('HELLO'), 'WORLD')
if __name__ == '__main__':
subprocess.Popen(['nosetests', sys.argv[0]],
env={'HELLO': 'WORLD'}).wait()
बहरहाल, यह एक kludge की तरह लगता है, और मैं अभी भी nose.run()
ठीक से उपयोग करने के बारे में जानना चाहते हैं।
आप अभी भी पुराने बहाल करने के लिए होगा 'os.environ:
फिरtests/test_env.py
में'यदि आप परीक्षण के बाद कुछ और कर रहे हैं, लेकिन ऐसा कुछ है जिसे एक विधि में लगाया जा सकता है, मुझे लगता है। मैं इसे एक उत्तर के रूप में स्वीकार करूंगा। – Mihai