मेरे पास एक ऐसी स्क्रिप्ट है जो sys.argv का उपयोग करके विभिन्न चीजें और एक्सेस पैरामेंटर्स करती है लेकिन जब स्क्रिप्ट कोड के सबसे अजीब हिस्से में जाती है तो यह कहती है कि वहां कोई नहीं है इसके लिए मॉड्यूल। स्क्रिप्ट मेरे पास है वह यह है कि:sys.argv [1] के साथ समस्या जब unittest मॉड्यूल एक स्क्रिप्ट में है
class MyScript():
def __init__(self):
self.value = sys.argv[1]
def hello(self):
print self.value
def suite(self):
modules_to_test = ('external_sanity_onvif', 'starttest')
alltests = unittest.TestSuite()
for module in map(__import__, modules_to_test):
alltests.addTest(unittest.findTestCases(module))
return alltests
if __name__ == '__main__':
Run = MyScript()
Run.hello()
log_file = 'log_file.txt'
test_file = open(log_file, "w")
runner = unittest.TextTestRunner(test_file)
unittest.main(defaultTest='Run.suite', testRunner=runner)
मैं कमांड लाइन में ./script.py Hello
दर्ज कहो। मुझे जो त्रुटि मिलती है वह है:
AttributeError: 'module' object has no attribute 'Hello'
यदि मैं अनजान मॉड्यूल को हटा देता हूं तो यह काम करता है। इसके अलावा यदि मैं testrunner लॉग को हटा देता हूं और इसे छोड़ देता हूं:
unittest.main(defaultTest='Run.suite')
यह अभी भी काम नहीं करता है।
कोई भी मदद कर सकता है।
धन्यवाद
मैं इस हैक करने की कोशिश की लेकिन यह अभी भी sys.argv
को पढ़ने के लिए कोशिश करता है।
project = sys.argv[4:]
sys.argv = sys.argv[0:4]
मैं सिर्फ argv
के साथ इस की कोशिश की है लेकिन यह अभी भी टायर अतिरिक्त पैरामीटर को पढ़ने के लिए।
आप (स्टैक ट्रेस के साथ) पूर्ण त्रुटि संदेश पोस्ट कर सकता है? यह हमें बताएगा कि 'AttributeError' किस पंक्ति में हुआ था। – unutbu