Python unittest.TestLoader()類的幾種尋找testcase的方法的使用


轉自  :   https://www.jianshu.com/p/99ab2e4ca112

unittest.TestLoader()提供了創建test suite的幾種方法:
TestLoader().loadTestsFromTestCase(testCaseClass)
TestLoader().loadTestsFromModule(module, pattern=None)
TestLoader().loadTestsFromName(name, module=None)
TestLoader().loadTestsFromNames(name, module=None)
TestLoader().discover
下面一一列舉其用法,並會感嘆unittest的精妙之處。

  • loadTestsFromTestCase(testCaseClass)
    testCaseClass必須是TestCase的子類(或孫類也行)
  • loadTestsFromModule(module, pattern=None)
    test case所在的module
  • loadTestsFromName(name, module=None)
    name是一個string,string需要是是這種格式的“module.class.method”   ---注意,這是一個字符串
  • loadTestsFromNames(name, module=None)
    names是一個list,用法與上同
  • discover(start_dir, pattern=’test*.py’, top_level_dir=None)
    從python文件中獲取test cases

調試時發現,其實三種方法得到的test suite的格式都不一樣,但是runner.run()執行的結果是一樣的,這也是我覺得驚喜的原因。

unittest.TextTestRunner(verbosity=2).run(tests)
這里的verbosity是一個選項,表示測試結果的信息復雜度,有三個值
0 (靜默模式): 你只能獲得總的測試用例數和總的結果 比如 總共100個 失敗20 成功80

1 (默認模式): 非常類似靜默模式 只是在每個成功的用例前面有個“.” 每個失敗的用例前面有個 “F”

2 (詳細模式):測試結果會顯示每個測試用例的所有相關的信息
並且 你在命令行里加入不同的參數可以起到一樣的效果

加入 --quiet 參數 等效於 verbosity=0
加入--verbose參數等效於 verbosity=2
什么都不加就是 verbosity=1</pre>



作者:氨基鈉
鏈接:https://www.jianshu.com/p/99ab2e4ca112
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM