欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python ddt實現(xiàn)數(shù)據(jù)驅(qū)動

 更新時間:2018年03月14日 08:31:56   作者:nancy05  
這篇文章主要為大家詳細(xì)介紹了python ddt實現(xiàn)數(shù)據(jù)驅(qū)動,具有一定的參考價值,感興趣的小伙伴們可以參考一下

ddt 是第三方模塊,需安裝, pip install ddt

DDT包含類的裝飾器ddt和兩個方法裝飾器data(直接輸入測試數(shù)據(jù))

通常情況下,data中的數(shù)據(jù)按照一個參數(shù)傳遞給測試用例,如果data中含有多個數(shù)據(jù),以元組,列表,字典等數(shù)據(jù),需要自行在腳本中對數(shù)據(jù)進(jìn)行分解或者使用unpack分解數(shù)據(jù)。

@data(a,b)

那么a和b各運行一次用例

@data([a,d],[c,d])

如果沒有@unpack,那么[a,b]當(dāng)成一個參數(shù)傳入用例運行

如果有@unpack,那么[a,b]被分解開,按照用例中的兩個參數(shù)傳遞 

具體看下面的例子:

import unittest
from ddt import ddt,data,unpack

@ddt
class MyTesting(unittest.TestCase):
  def setUp(self):
    print('this is the setUp')
  @data([1,2,3])
  def test_1(self,value):
    print(value)

  @data([3,2,1],[5,3,2],[10,4,6])
  @unpack
  def test_minus(self,a,b,expected):
    actual = int(a) - int(b)
    expected = int(expected)
    self.assertEqual(actual, expected)

  @data([2,3],[4,5])
  def test_compare(self,a,b):
    self.assertEqual(a,b)

  def tearDown(self):
    print('this is tearDown')

if __name__ == '__main__':
  unittest.main(verbosity=2)

結(jié)果分析:

1. test_1的測試結(jié)果是ok的, 因為 [1,2,3] 作為一個整體傳給value,所有value 打印的值是[1,2,3]

test_1_1__1__2__3_ (__main__.MyTesting) ... ok
test_compare_1__2__3_ (__main__.MyTesting) ... ERROR
[1, 2, 3]

2. test_minus的測試結(jié)果也是ok的,由于在@data(...)下加了@unpack, 代表會把數(shù)據(jù)分解,得到3組測試數(shù)據(jù),分別為:

1.[3,2,1]
2.[5,3,2]
3.[10,4,6]
test_minus_1__3__2__1_ (__main__.MyTesting) ... ok
test_minus_2__5__3__2_ (__main__.MyTesting) ... ok
test_minus_3__10__4__6_ (__main__.MyTesting) ... ok

3. test_compare的測試結(jié)果是fail的,由于沒有加@unpack, 雖然還是會被理解成2組測試數(shù)據(jù),但是[2,3]作為一個整體被傳給了a, 因為b就沒有值傳入了,所以一執(zhí)行后報了  TypeError: test_compare() missing 1 required positional argument: 'b'  這句錯。

test_compare_1__2__3_ (__main__.MyTesting) ... ERROR
test_compare_2__4__5_ (__main__.MyTesting) ... ERROR
this is the setUp
ERROR: test_compare_1__2__3_ (__main__.MyTesting)
this is tearDown
----------------------------------------------------------------------
Traceback (most recent call last):
 File "D:\python\lib\site-packages\ddt.py", line 139, in wrapper
  return func(self, *args, **kwargs)
TypeError: test_compare() missing 1 required positional argument: 'b'

======================================================================
ERROR: test_compare_2__4__5_ (__main__.MyTesting)
----------------------------------------------------------------------
Traceback (most recent call last):
 File "D:\python\lib\site-packages\ddt.py", line 139, in wrapper
  return func(self, *args, **kwargs)
TypeError: test_compare() missing 1 required positional argument: 'b'

以上就是ddt 的學(xué)習(xí)總結(jié),ddt 還有file_data(可以從json或者yaml中獲取測試數(shù)據(jù))的驅(qū)動方式,下篇繼續(xù)啦。

相關(guān)文章

  • Python中操作各種多媒體,視頻、音頻到圖片的代碼詳解

    Python中操作各種多媒體,視頻、音頻到圖片的代碼詳解

    這篇文章主要介紹了Python玩轉(zhuǎn)各種多媒體,視頻、音頻到圖片,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 詳解使用Python處理文件目錄的相關(guān)方法

    詳解使用Python處理文件目錄的相關(guān)方法

    這篇文章主要介紹了使用Python處理文件目錄的相關(guān)方法,使用到了os模塊,需要的朋友可以參考下
    2015-10-10
  • Python?讀取?Word?文檔操作

    Python?讀取?Word?文檔操作

    這篇文章主要介紹了Python讀取Word文檔操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 聊聊PyTorch中eval和no_grad的關(guān)系

    聊聊PyTorch中eval和no_grad的關(guān)系

    這篇文章主要介紹了聊聊PyTorch中eval和no_grad的關(guān)系,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 詳解如何通過Python批量轉(zhuǎn)換圖片為PDF

    詳解如何通過Python批量轉(zhuǎn)換圖片為PDF

    這篇文章主要為大家介紹了如何基于Python + Tkinter開發(fā)的圖片批量轉(zhuǎn)PDF工具,可以支持批量添加圖片,拖拽等操作,感興趣的小伙伴可以參考一下
    2025-04-04
  • 20行python代碼的入門級小游戲的詳解

    20行python代碼的入門級小游戲的詳解

    這篇文章主要介紹了python入門級小游戲,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • python 讀取修改pcap包的例子

    python 讀取修改pcap包的例子

    今天小編就為大家分享一篇python 讀取修改pcap包的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python函數(shù)中參數(shù)是傳遞值還是引用詳解

    Python函數(shù)中參數(shù)是傳遞值還是引用詳解

    這篇文章主要介紹了深入了解Python函數(shù)中參數(shù)是傳值還是傳引用,在 C/C++ 中,傳值和傳引用是函數(shù)參數(shù)傳遞的兩種方式,在Python中參數(shù)是如何傳遞的,需要的朋友可以參考下
    2019-07-07
  • 用pandas中的DataFrame時選取行或列的方法

    用pandas中的DataFrame時選取行或列的方法

    今天小編就為大家分享一篇用pandas中的DataFrame時選取行或列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python鍵盤輸入轉(zhuǎn)換為列表的實例

    Python鍵盤輸入轉(zhuǎn)換為列表的實例

    今天小編就為大家分享一篇Python鍵盤輸入轉(zhuǎn)換為列表的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論