Skip to content

--setup-plan and --setup-only seem to claim different things #2049

@oscarh

Description

@oscarh

I have the following example:

from pytest import fixture @fixture(scope='module') def fixture1(): print('Setup of fixture1') yield 'fixture1' print('Teardown of fixture1') @fixture(scope='module') def fixture2(): print('Setup of fixture2') yield 'fixture2' print('Teardown of fixture2') def test_1(fixture1): print('Running test with {}'.format(fixture1)) def test_2(fixture1, fixture2): print('Running test with {} and {}'.format(fixture1, fixture2)) def test_3(fixture2): print('Running test with {}'.format(fixture2))

When running with --setup-plan, I get the following output (indicating extra teardown of fixture1 and 2):

test_fixture_lifetime.py SETUP M fixture1 test_fixture_lifetime.py::test_1 (fixtures used: fixture1) TEARDOWN M fixture1 SETUP M fixture1 SETUP M fixture2 test_fixture_lifetime.py::test_2 (fixtures used: fixture1, fixture2) TEARDOWN M fixture2 SETUP M fixture2 test_fixture_lifetime.py::test_3 (fixtures used: fixture2) TEARDOWN M fixture2 TEARDOWN M fixture1 

When running with --setup-show, the SETUP and TEARDOWN markers occur where my actual setup and teardown code executes:

test_fixture_lifetime.py Setup of fixture1 SETUP M fixture1 test_fixture_lifetime.py::test_1 (fixtures used: fixture1)Running test with fixture1 .Setup of fixture2 SETUP M fixture2 test_fixture_lifetime.py::test_2 (fixtures used: fixture1, fixture2)Running test with fixture1 and fixture2 . test_fixture_lifetime.py::test_3 (fixtures used: fixture2)Running test with fixture2 .Teardown of fixture2 TEARDOWN M fixture2Teardown of fixture1 TEARDOWN M fixture1 

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: bugproblem that needs to be addressed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions