Python------unittest discover()メソッドと実行順序

3052 ワード

一、Unittest discover()は異なる機能によって異なるテストファイルを作成することができ、さらには異なるテストディレクトリを作成することができ、テストファイルの中で異なる小機能を異なるテストクラスに分けることができ、クラスの下でテスト用例を作成し、全体の構造をより明確にすることができる.
TestLoaderクラスで提供されるdiscover()メソッドは、指定されたディレクトリの下のすべてのテストモジュールを特定し、サブディレクトリの下のテストモジュールを再帰的に調べることができ、ファイル名に一致したときにのみdiscover(start_dir,pattern='test*.py',top_level_dir=None)start_をロードします.dir:テストするモジュール名またはテスト例ディレクトリpattern='test*.py':使用例ファイル名の一致原則を表します.ここでは「test」で始まるものと一致する.pyタイプのファイル、*は任意の複数の文字top_を表しますlevel_dir=Noneテストモジュールの最上位ディレクトリ、最上位ディレクトリがない場合はデフォルトNone
次に、2つの例で説明します.例1
import unittest
case_path = '****'  # 

discover = unittest.defaultTestLoader.discover(case_path,pattern='test*.py')

if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(discover)
#discover() case_path  , , , run() discover, 

例2
def run_all_case():
    suite = unittest.TestSuite()
    all_py = unittest.defaultTestLoader.discover(setting.CASE_PATH,'*.py')
                                        #discover() (*.py), 
    [ suite.addTests(py) for py in all_py]# , case 
    run=bf(suite)
    today = datetime.datetime.today().strftime('%Y-%m-%d %H-%M-%S')
    title = '%s_ .html'%today
    report_abs_path = os.path.join(setting.REPORT_PATH,title) #
    run.report(title,filename=title,log_path=setting.REPORT_PATH)

 
 
転載先:https://www.cnblogs.com/yttbk/p/10219824.html