unittest框架中参数化是使用的ddt,而pytest框架不兼容ddt,只能使用框架中mark里自带的一个参数化标签parametrize。
Pytest参数化传参方式:
关键代码:@pytest.mark.parametrize()
1 @pytest.mark.parametrize("参数名称", 获取的用例数据)
2 def login(参数名称):
3 pass
pytest和unittest数据驱动的区别:
1 import unittest
2 import ddt
3 import pytest
4
5 test_data = [
6 {"name": "张三"},
7 {"name": "李四"},
8 {"name": "王五"}
9 ]
10
11 # pytest框架的参数化、数据驱动
12 @pytest.mark.parametrize("test_info", test_data)
13 # "test_info"是接收数据的变量名;test_data是需要传的数据
14 def test_ddt(test_info):
15 print(test_info["name"])
16 assert 1 == 1
17
18 # unittest框架的参数化、数据驱动
19 @ddt.ddt
20 class TestDDT(unittest.TestCase):
21 @ddt.data(*test_data)
22 def test_ddt(self, test_info):
23 print(test_info["name"])
24 assert 1 == 1