Bird
Raised Fist0
PyTesttesting~5 mins

setup.cfg configuration in PyTest - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the setup.cfg file in pytest?
The setup.cfg file is used to configure pytest settings and options in a simple, declarative way without needing command-line arguments.
Click to reveal answer
beginner
How do you specify the directory where pytest should look for tests in setup.cfg?
You can specify the test directory using the testpaths option under the [tool:pytest] section, for example:
[tool:pytest]
testpaths = tests
Click to reveal answer
beginner
What section header is used in setup.cfg to configure pytest options?
The section header is [tool:pytest]. All pytest options go under this section.
Click to reveal answer
intermediate
How can you add command-line options like --maxfail=2 and -v in setup.cfg?
Use the addopts option under [tool:pytest], for example:
[tool:pytest]
addopts = -v --maxfail=2
Click to reveal answer
beginner
Why is using setup.cfg for pytest configuration better than passing options via command line every time?
It keeps configuration consistent and reusable across runs and team members, avoids mistakes from missing options, and makes automation easier.
Click to reveal answer
Which section header is correct for pytest settings in setup.cfg?
A[pytest]
B[tool:pytest]
C[pytest-config]
D[tool:python]
How do you tell pytest to look for tests in the tests folder using setup.cfg?
Atests_folder = tests
Btestdir = tests
Ctestpaths = tests
Dtest_location = tests
What does the addopts option do in setup.cfg?
AAdds extra command-line options to pytest runs
BSpecifies the test file extensions
CDefines the Python version to use
DSets the test timeout duration
If you want pytest to stop after 1 failure, how do you set this in setup.cfg?
Aaddopts = --maxfail=1
Bmaxfail = 1
Cfailfast = true
Dstop_after_fail = 1
Why might teams prefer setup.cfg over command-line options for pytest?
AIt runs tests faster
BIt disables all warnings
CIt automatically fixes test failures
DIt ensures consistent test settings for everyone
Explain how to configure pytest to run tests in a specific folder and add verbose output using setup.cfg.
Think about the section header and the two main options for paths and extra command-line flags.
You got /3 concepts.
    Describe the benefits of using setup.cfg for pytest configuration instead of command-line arguments.
    Consider how configuration files help teams and automation.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the setup.cfg file in pytest?
      easy
      A. To store pytest configuration settings in one place
      B. To write test functions
      C. To install pytest package
      D. To run tests manually from the command line

      Solution

      1. Step 1: Understand pytest configuration

        The setup.cfg file is used to keep pytest settings centralized.
      2. Step 2: Differentiate from other tasks

        Writing tests or installing packages are not roles of setup.cfg.
      3. Final Answer:

        To store pytest configuration settings in one place -> Option A
      4. Quick Check:

        setup.cfg centralizes pytest settings [OK]
      Hint: Remember setup.cfg holds config, not test code [OK]
      Common Mistakes:
      • Confusing setup.cfg with test files
      • Thinking setup.cfg runs tests
      • Assuming setup.cfg installs packages
      2. Which of the following is the correct way to specify the test file pattern in setup.cfg?
      easy
      A. [pytest]\ntestpaths = tests
      B. [pytest]\npython_files = test_*.py
      C. [tool:pytest]\npython_files = *.txt
      D. [pytest]\nmarkers = test_*.py

      Solution

      1. Step 1: Identify correct section and key

        pytest settings go under [pytest] and python_files sets test file patterns.
      2. Step 2: Check pattern correctness

        python_files = test_*.py matches typical test files.
      3. Final Answer:

        [pytest]\npython_files = test_*.py -> Option B
      4. Quick Check:

        python_files sets test file pattern [OK]
      Hint: Use python_files to set test file patterns [OK]
      Common Mistakes:
      • Using wrong section header like [tool:pytest]
      • Confusing markers with file patterns
      • Setting testpaths instead of python_files for file pattern
      3. Given this setup.cfg snippet:
      [pytest]
      markers = slow: marks tests as slow
      python_files = test_*.py
      

      What happens when you run pytest -m slow?
      medium
      A. Tests in files not matching test_*.py run
      B. All tests run ignoring markers
      C. Tests with names containing 'slow' run
      D. Only tests marked with @pytest.mark.slow run

      Solution

      1. Step 1: Understand marker definition

        The marker slow is defined to label slow tests.
      2. Step 2: Effect of -m slow option

        Running pytest -m slow runs only tests marked with @pytest.mark.slow.
      3. Final Answer:

        Only tests marked with @pytest.mark.slow run -> Option D
      4. Quick Check:

        -m runs tests with matching marker [OK]
      Hint: -m runs tests with matching marker only [OK]
      Common Mistakes:
      • Thinking -m filters by test name
      • Assuming all tests run ignoring markers
      • Confusing file pattern with marker filtering
      4. You added this to setup.cfg:
      [pytest]
      markers = slow: marks slow tests
      python_files = test_*.py
      python_classes = Test*
      python_functions = test_*

      But pytest gives a warning about unknown markers. What is the likely cause?
      medium
      A. Markers need to be registered with full description and no typos
      B. Missing a blank line after [pytest] section
      C. Markers must be listed under [tool:pytest] section
      D. python_files setting conflicts with markers

      Solution

      1. Step 1: Check marker registration format

        Markers must be registered exactly with correct spelling and description.
      2. Step 2: Understand warning cause

        Warnings usually occur if marker name is misspelled or description is missing.
      3. Final Answer:

        Markers need to be registered with full description and no typos -> Option A
      4. Quick Check:

        Correct marker registration avoids warnings [OK]
      Hint: Check marker spelling and description carefully [OK]
      Common Mistakes:
      • Placing markers under wrong section
      • Forgetting marker description after colon
      • Assuming python_files affects markers
      5. You want pytest to automatically ignore tests in the legacy_tests folder without typing command line options. How do you configure setup.cfg to do this?
      hard
      A. [pytest] markers = ignore: skip legacy tests
      B. [pytest] python_files = test_*.py ignore = legacy_tests
      C. [pytest] addopts = --ignore=legacy_tests
      D. [pytest] filterwarnings = ignore::legacy_tests

      Solution

      1. Step 1: Identify option to ignore folders

        The --ignore=folder option tells pytest to skip that folder.
      2. Step 2: Set addopts in setup.cfg

        Adding addopts = --ignore=legacy_tests runs pytest with this option automatically.
      3. Final Answer:

        [pytest]\naddopts = --ignore=legacy_tests -> Option C
      4. Quick Check:

        addopts sets default command line options [OK]
      Hint: Use addopts to add default command line options [OK]
      Common Mistakes:
      • Using ignore key instead of addopts
      • Confusing markers with ignore settings
      • Using filterwarnings incorrectly for ignoring tests
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard