আমার একটি ডিরেক্টরি রয়েছে যাতে আমার পাইথন ইউনিট পরীক্ষা রয়েছে। প্রতিটি ইউনিট পরীক্ষা মডিউল ফর্ম পরীক্ষা _ *। পিআই এর হয় । আমি 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
, তবে এটি অগ্রগতি। তবে আমি কীভাবে পাস করব এবং ফলাফলটি প্রধানতে প্রদর্শিত করব? বা আমি কীভাবে এটি প্রাথমিকভাবে কাজ করব যাতে আমি কেবল এই ফাইলটি চালাতে পারি, এবং এরকমভাবে এই ডিরেক্টরিতে সমস্ত ইউনিট পরীক্ষা চালাতে পারি?