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