如何在python中生成動態(參數化)單元測試?我有一些測試數據,并希望為每個項目創建一個單元測試。我的第一個想法是這樣做:import unittest
l = [["foo", "a", "a",], ["bar", "a", "b"], ["lee", "b", "b"]]class TestSequence(unittest.TestCase):
def testsample(self):
for name, a,b in l:
print "test", name
self.assertEqual(a,b)if __name__ == '__main__':
unittest.main()這樣做的缺點是它在一次測試中處理所有數據。我想在飛行中為每個項目生成一個測試。有什么建議嗎?
3 回答

德瑪西亞99
TA貢獻1770條經驗 獲得超3個贊
import unittest l = [["foo", "a", "a",], ["bar", "a", "b"], ["lee", "b", "b"]]class TestSequenceMeta(type): def __new__(mcs, name, bases, dict): def gen_test(a, b): def test(self): self.assertEqual(a, b) return test for tname, a, b in l: test_name = "test_%s" % tname dict[test_name] = gen_test(a,b) return type.__new__(mcs, name, bases, dict)class TestSequence(unittest.TestCase): __metaclass__ = TestSequenceMetaif __name__ == '__main__': unittest.main()
添加回答
舉報
0/150
提交
取消