【轉】nose-parameterized是Python單元測試框架實現參數化的擴展
阿新 • • 發佈:2018-04-03
col ever sel mage 多線程 stc nbsp zed testng
原文地址:
http://www.cnblogs.com/fnng/p/6580636.html
相對而言,Python下面單元測試框架要弱上少,尤其是Python自帶的unittest測試框架,不支持參數化,不支持多線程執行用例,不支持HTML測試報告的生成...。好再,部分不足我們可以通過unittest擴展來滿足需求。比如現在要介紹一個參數化的擴展。
在沒有參數化功能的情況下,我們的用例需要這樣編寫。
import unittest class TestAdd(unittest.TestCase): def test_add_01(self): self.assertEqual(1 + 2, 3) def test_add_02(self): self.assertEqual(2 + 2, 5) def test_add_03(self): self.assertEqual(3 + 3, 6) if __name__ == ‘__main__‘: unittest.main()
nose-parameterized是一個針對Python單元測試框架實現參數化的擴展。同時支持不同的單元測試框架。
GitHub地址:https://github.com/wolever/nose-parameterized
然後,unittest就可以像TestNG一樣寫用例了。
import unittest from nose_parameterized import parameterized class TestAdd(unittest.TestCase): @parameterized.expand([ ("01",1, 1, 2), ("02",2, 2, 5), ("03",3, 3, 6), ]) def test_add(self, name, a, b, c): self.assertEqual(a+ b, c) if __name__ == ‘__main__‘: unittest.main(verbosity=2)
執行結果:
test_add_0_01 (__main__.TestAdd) ... ok
test_add_1_02 (__main__.TestAdd) ... FAIL
test_add_2_03 (__main__.TestAdd) ... ok
當相同入參和斷言結果的用例越多,這種寫法用起來越爽!
【轉】nose-parameterized是Python單元測試框架實現參數化的擴展