為什么要進(jìn)行順序控制呢?使用過testng的同學(xué)就知道,它相對(duì)于junit來說有更強(qiáng)大的功能,其中的一個(gè)功能就是依賴測(cè)試。什么是依賴測(cè)試呢?簡單的說一下就是,A方法運(yùn)行時(shí),其中有個(gè)變量的取值是B方法的動(dòng)態(tài)產(chǎn)出值。這樣就必須先執(zhí)行B方法。testng的test方法有dependson屬性來制定方法的依賴。但是像python的unittet框架,他類似于junit,沒有依賴測(cè)試的功能。unittest的main()方法執(zhí)行用例的順序是按照測(cè)試類、測(cè)試方法的名字的ASCII順序來執(zhí)行測(cè)試方法。如果想要控制執(zhí)行順序,有以下兩種方式:
1、通過TestSuite按照順序添加想要執(zhí)行的方法
suite=unittest.TestSuite()
suite.addTest(TestBddClass("method_name_c"))
suite.addTest(TestBddClass("method_name_a"))
這樣方法的執(zhí)行順序就是先執(zhí)行method_name_c,在執(zhí)行method_name_a
這種方式的確定是,你必須要一個(gè)個(gè)手動(dòng)去添加,測(cè)試過程中,用例個(gè)數(shù)不可能很少,這樣就懵逼了吧。看下一種方式吧。
2、順應(yīng)testunit的執(zhí)行順序,就是通過控制方法名字來實(shí)現(xiàn)。
比如,我要執(zhí)行一個(gè)交易過程的接口測(cè)試,該過程包含兩個(gè)過程,一個(gè)是createOrder(創(chuàng)建訂單),一個(gè)是confirmOrder(確認(rèn)訂單),并且confirmOrder需要交易ID,而交易ID是createOrder接口的動(dòng)態(tài)產(chǎn)出,所以必須要先執(zhí)行createOrder。
如果名字是testCreateOrder和testConfirmOrder的話,那么肯定先執(zhí)行testConfirmOrder。怎么辦呢?那就改名字唄,比如test_a_CreateOrder,test_b_ConfirmOrder。
以上內(nèi)容為大家介紹了pythonunittest控制用例的執(zhí)行順序,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。