Unittest与Pytest参数化区别

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

 

 

原文地址:https://www.cnblogs.com/zdx20/p/14782948.html