setupplan.py 823 B

1234567891011121314151617181920212223242526272829
  1. from __future__ import absolute_import, division, print_function
  2. import pytest
  3. def pytest_addoption(parser):
  4. group = parser.getgroup("debugconfig")
  5. group.addoption(
  6. "--setupplan",
  7. "--setup-plan",
  8. action="store_true",
  9. help="show what fixtures and tests would be executed but "
  10. "don't execute anything.",
  11. )
  12. @pytest.hookimpl(tryfirst=True)
  13. def pytest_fixture_setup(fixturedef, request):
  14. # Will return a dummy fixture if the setuponly option is provided.
  15. if request.config.option.setupplan:
  16. fixturedef.cached_result = (None, None, None)
  17. return fixturedef.cached_result
  18. @pytest.hookimpl(tryfirst=True)
  19. def pytest_cmdline_main(config):
  20. if config.option.setupplan:
  21. config.option.setuponly = True
  22. config.option.setupshow = True