Pytest - Conftest.py

  • 简述

    我们可以在这个文件中定义夹具函数,以使它们可以跨多个测试文件访问。
    创建一个新文件conftest.py并将以下代码添加到其中 -
    
    import pytest
    @pytest.fixture
    def input_value():
       input = 39
       return input
    
    编辑test_div_by_3_6.py删除夹具功能 -
    
    import pytest
    def test_divisible_by_3(input_value):
       assert input_value % 3 == 0
    def test_divisible_by_6(input_value):
       assert input_value % 6 == 0
    
    创建一个新文件test_div_by_13.py
    
    import pytest
    def test_divisible_by_13(input_value):
       assert input_value % 13 == 0
    
    现在,我们有了文件test_div_by_3_6.pytest_div_by_13.py使用定义在conftest.py.
    通过执行以下命令运行测试 -
    
    pytest -k divisible -v
    
    上述命令将生成以下结果 -
    
    test_div_by_13.py::test_divisible_by_13 PASSED
    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:7: AssertionError
    ========================== 1 failed, 2 passed, 6 deselected in 0.09 seconds
    ==========================
    
    测试将在同一文件中查找夹具。由于在文件中没有找到fixture,它会在conftest.py 文件中检查fixture。找到它后,将调用fixture 方法并将结果返回到测试的输入参数。