def test_show_multi_test_fixture_setup_and_teardown_same_as_setup_show(
    pytester: Pytester,
) -> None:
    """Verify that SETUP/TEARDOWN messages match what comes out of --setup-show."""
    pytester.makepyfile(
        """
        import pytest
        @pytest.fixture(scope = 'session')
        def sess():
            return True
        @pytest.fixture(scope = 'module')
        def mod():
            return True
        @pytest.fixture(scope = 'class')
        def cls():
            return True
        @pytest.fixture(scope = 'function')
        def func():
            return True
        def test_outside(sess, mod, cls, func):
            assert True
        class TestCls:
            def test_one(self, sess, mod, cls, func):
                assert True
            def test_two(self, sess, mod, cls, func):
                assert True
    """
    )

    plan_result = pytester.runpytest("--setup-plan")
    show_result = pytester.runpytest("--setup-show")

    # the number and text of these lines should be identical
    plan_lines = [
        line
        for line in plan_result.stdout.lines
        if "SETUP" in line or "TEARDOWN" in line
    ]
    show_lines = [
        line
        for line in show_result.stdout.lines
        if "SETUP" in line or "TEARDOWN" in line
    ]

    assert plan_lines == show_lines
Verify that SETUP/TEARDOWN messages match what comes out of --setup-show.
testing/test_setupplan.py