मेरे पास एक निर्देशिका है जिसमें मेरे पायथन यूनिट परीक्षण शामिल हैं। प्रत्येक इकाई परीक्षण मॉड्यूल फॉर्म टेस्ट _ * py का है । मैं एक फ़ाइल बनाने का प्रयास कर रहा हूँ जिसका नाम all_test.py है, आपने यह अनुमान लगाया है, उपरोक्त सभी फ़ाइलों को पूर्वोक्त परीक्षण प्रपत्र में चलाएं और परिणाम लौटाएँ । मैंने अब तक दो तरीके आज़माए हैं; दोनों असफल रहे। मैं दो तरीकों को दिखाऊंगा, और मुझे उम्मीद है कि कोई व्यक्ति जानता है कि वास्तव में यह कैसे सही तरीके से करना है।
मेरे पहले बहादुर प्रयास के लिए, मैंने सोचा कि "अगर मैं फ़ाइल में अपने सभी परीक्षण मॉड्यूल आयात करता हूं, और फिर इस unittest.main()
डूडड को कॉल करता हूं, तो यह काम करेगा, है ना?" खैर, पता चला कि मैं गलत था।
import glob
import unittest
testSuite = unittest.TestSuite()
test_file_strings = glob.glob('test_*.py')
module_strings = [str[0:len(str)-3] for str in test_file_strings]
if __name__ == "__main__":
unittest.main()
यह काम नहीं किया, मुझे जो परिणाम मिला वह था:
$ python all_test.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
मेरी दूसरी कोशिश के लिए, मैं हालांकि, ठीक है, शायद मैं इस पूरी परीक्षण चीज़ को अधिक "मैनुअल" फैशन में करने की कोशिश करूंगा। इसलिए मैंने नीचे ऐसा करने का प्रयास किया:
import glob
import unittest
testSuite = unittest.TestSuite()
test_file_strings = glob.glob('test_*.py')
module_strings = [str[0:len(str)-3] for str in test_file_strings]
[__import__(str) for str in module_strings]
suites = [unittest.TestLoader().loadTestsFromName(str) for str in module_strings]
[testSuite.addTest(suite) for suite in suites]
print testSuite
result = unittest.TestResult()
testSuite.run(result)
print result
#Ok, at this point I have a result
#How do I display it as the normal unit test command line output?
if __name__ == "__main__":
unittest.main()
यह भी काम नहीं किया, लेकिन यह इतना करीब लगता है!
$ python all_test.py
<unittest.TestSuite tests=[<unittest.TestSuite tests=[<unittest.TestSuite tests=[<test_main.TestMain testMethod=test_respondes_to_get>]>]>]>
<unittest.TestResult run=1 errors=0 failures=0>
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
मुझे लगता है कि किसी प्रकार का एक सूट है, और मैं परिणाम को निष्पादित कर सकता हूं। मैं इस तथ्य के बारे में थोड़ा चिंतित हूं कि यह कहता है कि मेरे पास केवल run=1
ऐसा है, ऐसा लगता है कि ऐसा होना चाहिए run=2
, लेकिन यह प्रगति है। लेकिन मैं मुख्य परिणाम कैसे पास और प्रदर्शित करूं? या मैं मूल रूप से इसे कैसे काम करूं, इसलिए मैं सिर्फ इस फ़ाइल को चला सकता हूं, और ऐसा करने में, इस निर्देशिका में सभी यूनिट परीक्षण चलाएं?