Pytest fixture

Pytest fixture

fixture是函数,它将在每个测试函数之前运行,它被应用于此。固定程序用于向测试提供一些数据,如数据库连接、测试的URL和一些输入数据。因此,我们可以将夹具函数附加到测试中,而不是为每个测试运行相同的代码,它将在执行每个测试之前运行并返回数据给测试。

一个函数被标记为一个夹具,通过-

@pytest.fixture

一个测试函数可以通过提及夹具名称作为输入参数来使用一个夹具。

创建一个文件 test_div_by_3_6.py ,并在其中添加以下代码

import pytest

@pytest.fixture
def input_value():
   input = 39
   return input

def test_divisible_by_3(input_value):
   assert input_value % 3 == 0

def test_divisible_by_6(input_value):
   assert input_value % 6 == 0

这里,我们有一个名为 input_value 的夹具函数,它为测试提供输入。要访问该夹具函数,测试必须提到夹具名称作为输入参数。

当测试被执行时,Pytest将看到夹具名称作为输入参数。然后它执行夹具函数,返回的值被存储在输入参数中,可以被测试使用。

使用以下命令执行测试

pytest -k divisible -v

上述命令将产生以下结果 –

test_div_by_3_6.py::test_divisible_by_3 PASSED
test_div_by_3_6.py::test_divisible_by_6 FAILED
============================================== FAILURES
==============================================
________________________________________ test_divisible_by_6
_________________________________________
input_value = 39
   def test_divisible_by_6(input_value):
>  assert input_value % 6 == 0
E  assert (39 % 6) == 0
test_div_by_3_6.py:12: AssertionError
========================== 1 failed, 1 passed, 6 deselected in 0.07 seconds
==========================

然而,这种方法有其自身的局限性。在一个测试文件中定义的夹具函数只有在该测试文件中才有作用。我们不能在另一个测试文件中使用该夹具。为了使一个夹具在多个测试文件中可用,我们必须在一个叫做conftest.py的文件中定义夹具函数。 conftest.py 将在下一章解释。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程