import unittest
import ddt
data = {
'key1':['value1','value2'],
'key2':['value3','value4'],
}
@ddt.ddt()
class test_allure(unittest.TestCase):
def setUp(self) -> None:
print(f'开始')
def tearDown(self) -> None:
print(f'结束')
#手写的函数test_list1 和;test_list2,希望通过函数自动生成,如:当data增加key3时,自动生成函数def test_list3
@ddt.data(*data['key1'])
def test_list1(self,data):
print(f'111{data}')
@ddt.data(*data['key2'])
def test_list2(self, data):
print(f'111{data}')
if __name__=='__main__':
unittest.main()
用FunctionType就行了,如下所示
from types import FunctionType
foo_code = compile('def foo(): return "bar"', "<string>", "exec")
foo_func = FunctionType(foo_code.co_consts[0], globals(), "foo")
print(foo_func())