unittest 使用

1、uintest  能幹什麼web

unittest單元測試框架不只能夠適用於單元測試,還能夠適用WEB自動化測試用例的開發與執行,該測試框架可組織執行測試用例,而且提供了豐富的斷言方法,判斷測試用例是否經過,最終生成測試結果數據庫

 

2、 使用方法瀏覽器

一、屬性參數:框架

  unittest.TestCase  全部測試類 必須繼承的基本類 less

class Lean (unittest.TestCase):

  unittest.main()  將一個單元測試模塊 變爲可運行的測試腳本 ,  main()  方法經過  TestLoader類搜索模塊中 ,以test開頭的測試方法並自動執行,默認順序 爲0-9  A-Z  a-z單元測試

  unittest.TestSuite  用來建立測試套件測試

  unitest.Text.Tesxt.Runner()   經過 其run 方法 來執行 TestSuite 所組裝的測試用例 入參爲 TestSuite的測試套件  (運行方法1)ui

  unittest.Default.TestLoader()    經過其discover()方法 自動根據測試目錄下 test*py 的測試文件  (運行方法2)spa

  discover = unittest.default.TestLoader.discover(test_dir,  pattern = 'tets*.py')

   unittest.skip() 裝飾器,當運行用例時,有些用例可能不想執行等,可用裝飾器暫時屏蔽該條測試用例。一種常見的用法就是好比說想調試某一個測試用例,想先屏蔽其餘用例就能夠用裝飾器屏蔽。調試

@unittest.skip(reason): skip(reason)裝飾器:無條件跳過裝飾的測試,並說明跳過測試的緣由。
@unittest.skip("無條件跳過此用例")
def test_02(self):
@unittest.skipIf(reason): skipIf(condition,reason)裝飾器:條件爲真時,跳過裝飾的測試,並說明跳過測試的緣由。 
@unittest.skipUnless(reason): skipUnless(condition,reason)裝飾器:條件爲假時,跳過裝飾的測試,並說明跳過測試的緣由。
@unittest.expectedFailure(): expectedFailure()測試標記爲失敗。

二、unitest.TestCase() 的 屬性方法

  

  setUp ()  初始化: 測試用例執行前的初始化工做。如測試用例中須要訪問數據庫,能夠在setUp中創建數據庫鏈接並進行初始化。如測試用例須要登陸web,能夠先實例化瀏覽器。

  tearDown() 方法  與 setUp()對應: 用於測試用例執行以後的善後工做。如關閉數據庫鏈接。關閉瀏覽器

  accresst *()   斷言 :
|

assert*():一些斷言方法:在執行測試用例的過程當中,最終用例是否執行經過,是經過判斷測試獲得的實際結果和預期結果是否相等決定的。

assertEqual(a,b,[msg='測試失敗時打印的信息']):斷言a和b是否相等,相等則測試用例經過。

assertNotEqual(a,b,[msg='測試失敗時打印的信息']):斷言a和b是否相等,不相等則測試用例經過。

assertTrue(x,[msg='測試失敗時打印的信息']):斷言x是否True,是True則測試用例經過。

assertFalse(x,[msg='測試失敗時打印的信息']):斷言x是否False,是False則測試用例經過。

assertIs(a,b,[msg='測試失敗時打印的信息']):斷言a是不是b,是則測試用例經過。

assertNotIs(a,b,[msg='測試失敗時打印的信息']):斷言a是不是b,不是則測試用例經過。

assertIsNone(x,[msg='測試失敗時打印的信息']):斷言x是否None,是None則測試用例經過。

assertIsNotNone(x,[msg='測試失敗時打印的信息']):斷言x是否None,不是None則測試用例經過。

assertIn(a,b,[msg='測試失敗時打印的信息']):斷言a是否在b中,在b中則測試用例經過。

assertNotIn(a,b,[msg='測試失敗時打印的信息']):斷言a是否在b中,不在b中則測試用例經過。

assertIsInstance(a,b,[msg='測試失敗時打印的信息']):斷言a是是b的一個實例,是則測試用例經過。

assertNotIsInstance(a,b,[msg='測試失敗時打印的信息']):斷言a是是b的一個實例,不是則測試用例經過。

 

三、 testSuite() 類的屬性:

   addTest() : 將測試用例添加的到 testSuite() 中  :

suite = unittest.TestSuite()
suite.addTest(test_BaiduTest.BaiduTest('test_baidu'))

 

4. TextTextRunner() 類的屬性:

  runnner(runner =#import unittest

#coding:utf-8import  unittestclass Test_baidu(unittest.TestCase):    def setUp(self):        #初始化 ,在用於測試用例執行前,例如鏈接數據庫        return self    def test_case1(self):        #測試用例  以 test 開頭        print('hhh')    @unittest.skip('跳過')    def test_case2(self):        return self    def test_case3(self):        return self    def tearDown(self):        #在測試用例最後執行 ,例如關閉數據庫        return self    def method(self):        #request        print('func')if __name__ == '__main__':    # 方法一    # unittest.main()    #方法二    # suit = unittest.TestSuite()    # suit.addTest(Test_baidu('test_case1'))    # runner = unittest.TextTestRunner()    # runner.run(suit)    #方法三    # test_dir = './../../'    # print(test_dir)    # discover = unittest.defaultTestLoader.discover(test_dir,pattern='test_*.py')    # runner = unittest.TextTestRunner()    # runner.run(discover)
相關文章
相關標籤/搜索