import ddt
import unittest
"""
ddt模块包含了一个类的装饰器ddt和两个方法的装饰器:
data:包含多个你想要传给测试用例的参数;
file_data:会从json或yaml中加载数据;
通常data中包含的每一个值都会作为一个单独的参数传给测试方法,如果这些值是用元组或者列表传进来的,可以用unpack方法将其自动分解成多个参数。
"""
test_data2 = [{"a": "1", "pwd": "123456"},
{"b": "2", "pwd": "123456"}]
@ddt.ddt
class Test(unittest.TestCase):
def setUp(self):
print("Start!")
def tearDown(self):
print("end!")
@ddt.file_data(\'url.yaml\')
def test_ddt1(self, **data):
print(data)
"""
执行2次,yaml文件中是一个含有2个元素的list
Start!
{\'url\': \'http://feature.v3.0.1.xxxx.com/albums\',
\'headers\': {\'Authorization\': \'x3JpemF0aW9ucyIsIxxwz8V1gn80yE-b8\',
\'Accept\': \'application/vnd.xxx.admin+json\'},
\'Body\': {\'url\': \'http://list.youku.com/show/ixxxbf.html?spm=a2h0j.11185381.bpmodule-playpage-righttitle.5~H2~A\'},
\'code\': {\'status_code\': 200, \'message\': \'success\'}}
end!
Start!
{\'url\': \'http://feature.v3.0.1.xxxx.com/albums\',
\'headers\': {\'Authorization\': \'x3JpemF0aW9ucyIsIxxwz8V1gn80yE-b8\',
\'Accept\': \'application/vnd.xxx.admin+json\'},
\'Body\': {\'url\': \'http://list.youku.com/show/ixxxbf.html?spm=a2h0j.11185381.bpmodule-playpage-righttitle.5~H2~A\'},
\'code\': {\'status_code\': 200, \'message\': \'success\'}}
end!
"""
@ddt.data(*test_data2)
def test_ddt2(self, data):
print(data)
return data
"""
Start!
{\'a\': \'1\', \'pwd\': \'123456\'}
end!
Start!
{\'b\': \'2\', \'pwd\': \'123456\'}
end!
"""
# suit = unittest.TestSuite()
# suit.addTest(Test(\'test_ddt1\'))
# suit.addTest(unittest.makeSuite(Test))
# unittest.TextTestRunner().run(suit)
if __name__ == "__main__":
unittest.main()
相关文章: