python unittest控制用例的執行順序


為什么要進行順序控制呢?使用過testng的同學就知道,它相對於junit來說有更強大的功能,其中的一個功能就是依賴測試。什么是依賴測試呢?簡單的說一下就是,A方法運行時,其中有個變量的取值是B方法的動態產出值。這樣就必須先執行B方法。testng的test方法有dependson屬性來制定方法的依賴。但是向python的unittet框架,他類似於junit,沒有依賴測試的功能。unittest的main()方法執行用例的順序是按照測試類、測試方法的名字的ASCII順序來執行測試方法。如果想要控制執行順序,有以下幾種方式:

1、 通過TestSuite按照順序添加想要執行的方法

     suite = unittest.TestSuite()

     suite.addTest(TestBddClass("method_name_c"))

     suite.addTest(TestBddClass("method_name_a"))

     這樣方法的執行順序就是先執行method_name_c,在執行method_name_a

   這種方式的確定是,你必須要一個個手動去添加,測試過程中,用例個數不可能很少,這樣就懵逼了吧。看下一種方式吧。

2、順應testunit的執行順序,就是通過控制方法名字來實現。

    比如,我要執行一個交易過程的接口測試,該過程包含兩個過程,一個是createOrder(創建訂單),一個是confirmOrder(確認訂單),並且confirmOrder需要交易ID,而交易ID是createOrder接口的動態產出,所以必須要先執行createOrder。

    如果名字是testCreateOrder和testConfirmOrder的話,那么肯定先執行testConfirmOrder。怎么辦呢?那就改名字唄,比如test_a_CreateOrder, test_b_ConfirmOrder

3、上面第二種方法,也可以固定用例的執行順序,寫成 test_0_CreateOrder, test_1_ConfirmOrder!

 

說的有點啰嗦,但大概是這個意思。


免責聲明!

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



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