Pytest 参数化测试

甜岛和星

Pytest 参数化测试

对测试进行参数化是为了针对多组输入运行测试。我们可以使用以下标记来实现这个目的 –

@pytest.mark.parametrize

将以下代码复制到一个名为 test_multiplication.py 的文件中

import pytest

@pytest.mark.parametrize("num, output",[(1,11),(2,22),(3,35),(4,44)])
def test_multiplication_11(num, output):
   assert 11*num == output

在这里,测试将一个输入与11相乘,并将结果与预期输出进行比较。 该测试有4组输入,每组输入都有两个值——一个是要与11相乘的数,另一个是预期的结果。

通过运行以下命令来执行测试−

Pytest -k multiplication -v

上述命令将生成以下输出:

test_multiplication.py::test_multiplication_11[1-11] PASSED
test_multiplication.py::test_multiplication_11[2-22] PASSED
test_multiplication.py::test_multiplication_11[3-35] FAILED
test_multiplication.py::test_multiplication_11[4-44] PASSED
============================================== FAILURES
==============================================
_________________ test_multiplication_11[3-35] __________________
num = 3, output = 35
   @pytest.mark.parametrize("num, output",[(1,11),(2,22),(3,35),(4,44)])
   def test_multiplication_11(num, output):
>  assert 11*num == output
E  assert (11 * 3) == 35
test_multiplication.py:5: AssertionError
============================== 1 failed, 3 passed, 8 deselected in 0.08 seconds
==============================

Pytest教程目录索引

  • Pytest 教程
  • Pytest 简介
  • Pytest 环境搭建
  • Pytest 标识测试文件和测试函数
  • Pytest 着手编写基本测试
  • Pytest 文件执行
  • Pytest 执行一部分测试套件
  • Pytest 测试名称的子字符串匹配
  • Pytest 分组测试
  • Pytest fixture
  • Pytest Conftest.py
  • Pytest 参数化测试
  • Pytest 选择xfail测试或跳过测试
  • Pytest 在N个测试失败后停止测试套件
  • Pytest 并行运行测试
  • Pytest 以XML格式执行测试的结果
  • Pytest 总结

版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com

目录[+]

取消
微信二维码
微信二维码
支付宝二维码