参数化测试的目的是针对多组参数运行测试。我们可以通过@ pytest.mark.parametrize做到这一点。
我们将在下面的示例中看到这一点。在这里,我们将3个参数传递给测试方法。此测试方法将添加前两个参数,并将其与第三个参数进行比较。
使用以下代码创建测试文件test_addition.py
import pytest @pytest.mark.parametrize("input1, input2, output",[(5,5,10),(3,5,12)]) def test_add(input1, input2, output): assert input1+input2 == output,"failed"这里的测试方法接受3个参数-输入1,输入2,输出。它将输入1和输入2相加并与输出进行比较。
让我们通过py.test -k test_add -v运行测试并查看结果
test_addition.py::test_add[5-5-10] PASSED test_addition.py::test_add[3-5-12] FAILED ============================================== FAILURES ============================================== __________________________________________ test_add[3-5-12] __________________________________________ input1 = 3, input2 = 5, output = 12 @pytest.mark.parametrize("input1, input2, output",[(5,5,10),(3,5,12)]) def test_add(input1, input2, output): > assert input1+input2 == output,"failed" E AssertionError: failed E assert (3 + 5) == 12 test_addition.py:5: AssertionError您可以看到测试运行了2次-一次检查5 + 5 == 10,另一次检查3 + 5 == 12
test_addition.py::test_add[5-5-10]通过
test_addition.py::test_add[3-5-12]失败
▼
更多精彩推荐,请关注我们
▼
扫码关注更多精彩
你点的每个赞,我都认真当成了喜欢