验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Python pytest如何实现参数化测试

阅读:261 来源:乙速云 作者:代码code

Python pytest如何实现参数化测试

在Python的pytest框架中,可以使用@pytest.mark.parametrize装饰器来实现参数化测试。这个装饰器允许你为测试函数提供多组不同的输入数据和预期输出结果,从而可以一次性运行多个测试用例。

下面是一个简单的例子,展示了如何使用@pytest.mark.parametrize来实现参数化测试:

import pytest

# 定义一个测试函数,并使用parametrize装饰器
@pytest.mark.parametrize("input, expected", [
    (1, 2),  # 第一组测试数据:输入1,预期输出2
    (2, 3),  # 第二组测试数据:输入2,预期输出3
    (3, 4),  # 第三组测试数据:输入3,预期输出4
])
def test_increment(input, expected):
    assert input + 1 == expected

# 运行测试时,pytest会为每组测试数据执行一次test_increment函数

在这个例子中,test_increment函数被@pytest.mark.parametrize装饰器修饰,并传入了一个包含多组测试数据的列表。每组测试数据都是一个元组,第一个元素是输入值,第二个元素是预期输出值。

当你运行这个测试脚本时,pytest会为每组测试数据执行一次test_increment函数,并检查函数的断言是否成立。如果所有测试用例都通过,那么测试就会成功;如果有任何一个测试用例失败,那么测试就会失败,并显示相应的错误信息。

你还可以使用ids参数来自定义每个测试用例的名称,这样在测试报告中会更容易理解每个测试用例的含义:

@pytest.mark.parametrize("input, expected", [
    (1, 2),
    (2, 3),
    (3, 4),
], ids=["Test case 1", "Test case 2", "Test case 3"])

这样,在测试报告中,每个测试用例都会显示为"Test case 1"、“Test case 2"和"Test case 3”。

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>