Bird
Raised Fist0
PyTesttesting~10 mins

setup.cfg configuration in PyTest - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to specify the test paths in setup.cfg.

PyTest
[tool:pytest]
testpaths = [1]
Drag options to blanks, or click blank then click option'
Asrc
Bbuild
Ctests
Ddocs
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'src' instead of 'tests' for testpaths.
Leaving testpaths empty or missing.
2fill in blank
medium

Complete the code to add markers configuration in setup.cfg.

PyTest
[tool:pytest]
markers =
    slow: marks tests as slow (skip with -m "not slow")
    [1]: marks tests that need database access
Drag options to blanks, or click blank then click option'
Afast
Bui
Capi
Ddb
Attempts:
3 left
💡 Hint
Common Mistakes
Using unrelated marker names like 'fast' or 'ui' here.
Forgetting to add markers section.
3fill in blank
hard

Fix the error in the setup.cfg snippet to correctly ignore cache directories.

PyTest
[tool:pytest]
addopts = --cache-clear --ignore=[1]
Drag options to blanks, or click blank then click option'
A__pycache__
Bbuild
Ccache
Ddist
Attempts:
3 left
💡 Hint
Common Mistakes
Ignoring 'cache' instead of '__pycache__'.
Using unrelated folders like 'build' or 'dist'.
4fill in blank
hard

Fill both blanks to configure pytest to show detailed info and stop after first failure.

PyTest
[tool:pytest]
addopts = [1] [2]
Drag options to blanks, or click blank then click option'
A-v
B-q
C-x
D--maxfail=1
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-q' which reduces output instead of '-v'.
Using '--maxfail=1' instead of '-x' for stopping early.
5fill in blank
hard

Fill all three blanks to configure pytest to add markers, ignore cache, and set test paths.

PyTest
[tool:pytest]
markers = [1]: marks tests needing network
addopts = --ignore=[2]
testpaths = [3]
Drag options to blanks, or click blank then click option'
Anetwork
B__pycache__
Ctests
Dslow
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing marker names or ignoring wrong folders.
Setting testpaths to wrong folder.

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