簡體   English   中英

Python是否提供了使用多個測試輸入來運行同一單元測試的方法?

[英]Does Python provide ways to run the same unit test with multiple test inputs?

在C#和NUnit中,存在TestCase屬性和T estCaseSource屬性 ,這兩個屬性都允許對單元測試進行參數化,以便同一“測試”可以在不同的輸入下多次使用。 這樣可以減少代碼重復,同時保持可讀性。

Python是否存在類似的東西?

編輯:@Dunes提到的測驗 ,這是我應該包括作為這個問題的一部分。 不幸的是,它僅是3.4的功能,我希望支持2.7和3.4。

答案是subTest 但是,僅從Python 3.4起可用。

不過有unittest2 它提供了Python 3.4中unittest最新功能的subTest (包括subTest )。 已測試unittest2可在Python 2.6、2.7、3.2、3.3、3.4和pypy上運行。

幾個庫將允許您執行此操作。 例如,py.test示例如下:

import pytest
@pytest.mark.parametrize("test_input,expected", [
    ("3+5", 8),
    ("2+4", 6),
    ("6*9", 42),
])

def test_eval(test_input, expected):
    assert eval(test_input) == expected

這來自py.test文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM