【Python】nose_parameterized使unitTest支援參數化

來源:互聯網
上載者:User

標籤:failed   lan   generator   not   ace   --   ram   運行   traceback   

nose_parameterized使unitTest支援參數化

GIT https://github.com/wolever/nose-parameterized

  • And @parameterized.expand can be used to generate test methods in situations where test generators cannot be used (for example, when the test class is a subclass of unittest.TestCase):
  • 使用unittest執行case
#nose_parameterized_demoimport unittest from nose_parameterized import parameterizedclass TestMathUnitTest(unittest.TestCase):        @parameterized.expand([        ("1st", 4, 5),        ("2en", 2, 4),        ("3rd", 3, 4),    ])    def test_floor(self, name, source, expected):        self.assertEqual(source + 1, expected)

運行結果

D:\workspace\pyUnitTest\src>python -m unittest -v nose_parameterized_demotest_floor_0_1st (nose_parameterized_demo.TestMathUnitTest) ... oktest_floor_1_2en (nose_parameterized_demo.TestMathUnitTest) ... FAILtest_floor_2_3rd (nose_parameterized_demo.TestMathUnitTest) ... ok======================================================================FAIL: test_floor_1_2en (nose_parameterized_demo.TestMathUnitTest)----------------------------------------------------------------------Traceback (most recent call last):  File "C:\Python27\lib\site-packages\nose_parameterized-0.5.0-py2.7.egg\nose_parameterized\parameterized.py",   line 365, in standalone_func    return func(*(a + p.args), **p.kwargs)  File "nose_parameterized_demo.py", line 13, in test_floor    self.assertEqual(source + 1, expected)AssertionError: 3 != 4----------------------------------------------------------------------Ran 3 tests in 0.029sFAILED (failures=1)D:\workspace\pyUnitTest\src>
  • @parameterized.expand 通過變數引用參數化資料
  • @parameterized.expand(input=params)附帶的變數名稱需為input
#nose_parameterized_demoimport unittest from nose_parameterized import parameterizedclass TestMathUnitTest(unittest.TestCase):        params = [        ("1st", 4, 5),        ("2en", 2, 4),        ("3rd", 3, 4),    ]        @parameterized.expand(input=params)    def test_floor(self, name, source, expected):        self.assertEqual(source + 1, expected)

 

  • The @parameterized decorator can be used test class methods, and standalone functions:
  • 使用nosetest執行case
from nose.tools import assert_equalfrom nose_parameterized import parameterizedimport unittestimport math@parameterized([    (2, 2, 4),    (2, 3, 8),    (1, 9, 1),    (0, 9, 0),])def test_pow(base, exponent, expected):    assert_equal(math.pow(base, exponent), expected)

執行結果

D:\workspace\pyUnitTest\src> nosetests -v t1.pyt1.test_pow(2, 2, 4) ... okt1.test_pow(2, 3, 8) ... okt1.test_pow(1, 9, 1) ... okt1.test_pow(0, 9, 0) ... ok----------------------------------------------------------------------Ran 4 tests in 0.025sOK

 

【Python】nose_parameterized使unitTest支援參數化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.