Bird
Raised Fist0
PyTesttesting~20 mins

Addopts for default options in PyTest - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Addopts Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding pytest addopts default behavior

What is the effect of adding --maxfail=2 --disable-warnings to the addopts option in pytest.ini?

APytest will ignore the first 2 failures and show warnings only for errors.
BPytest will run only 2 tests and show all warnings.
CPytest will stop after 2 test failures and suppress all warning messages during test runs.
DPytest will run tests twice and disable all error messages.
Attempts:
2 left
💡 Hint

Think about what --maxfail and --disable-warnings do individually.

❓ Predict Output
intermediate
1:30remaining
Output of pytest with addopts for verbosity

Given the following pytest.ini configuration:

[pytest]
addopts = -v

and a test file test_sample.py with two passing tests, what will be the output style when running pytest?

PyTest
def test_one():
    assert 1 == 1

def test_two():
    assert 2 == 2
APytest will show only dots for each passing test without names.
BPytest will show detailed test names and statuses for each test (verbose output).
CPytest will stop after the first test and show no output.
DPytest will show warnings and errors but no test results.
Attempts:
2 left
💡 Hint

What does the -v option do in pytest?

❓ assertion
advanced
2:00remaining
Correct assertion to verify addopts effect

You have set addopts = --tb=short in pytest.ini. Which assertion correctly verifies that the traceback style is short during test failure?

PyTest
def test_fail():
    assert False
Aassert pytest.config.getoption('tb') == 'short'
Bassert 'short' in pytest.config.getoption('tbstyle')
Cassert '--tb=short' in pytest.config.getoption('addopts')
Dassert 'short' in pytest.config.getoption('tb')
Attempts:
2 left
💡 Hint

Check how to access the traceback style option in pytest.

🔧 Debug
advanced
1:30remaining
Debugging addopts syntax error in pytest.ini

Which addopts line in pytest.ini will cause a syntax error when pytest tries to parse it?

Aaddopts = --maxfail=3 --disable-warnings
Baddopts = --maxfail=3 --disable-warnings --tb=short
Caddopts = --maxfail=3 --tb=short
Daddopts = --maxfail=3 --disable warnings
Attempts:
2 left
💡 Hint

Look carefully at the spacing in the options.

❓ framework
expert
2:30remaining
Effect of addopts on pytest test discovery

If addopts in pytest.ini includes --ignore=tests/integration, what will happen when you run pytest?

APytest will skip all tests inside the <code>tests/integration</code> directory during discovery.
BPytest will only run tests inside <code>tests/integration</code> and ignore others.
CPytest will run all tests but mark those in <code>tests/integration</code> as expected failures.
DPytest will fail to start due to invalid addopts syntax.
Attempts:
2 left
💡 Hint

What does the --ignore option do in pytest?

Practice

(1/5)
1. What is the main purpose of the addopts setting in a pytest.ini file?
easy
A. To set default command-line options for pytest runs
B. To define test case names automatically
C. To specify the Python version for pytest
D. To list all test files explicitly

Solution

  1. Step 1: Understand addopts role in pytest.ini

    addopts is used to provide default command-line options so you don't have to type them every time.
  2. Step 2: Compare other options

    Other options like naming tests or Python version are not controlled by addopts.
  3. Final Answer:

    To set default command-line options for pytest runs -> Option A
  4. Quick Check:

    Default pytest options = addopts [OK]
Hint: Remember: addopts sets default pytest command options [OK]
Common Mistakes:
  • Thinking addopts defines test names
  • Confusing addopts with Python version settings
  • Assuming addopts lists test files
2. Which of the following is the correct way to add default options in pytest.ini using addopts?
easy
A. [pytest] addopts = maxfail=3 verbose
B. [pytest] addopts: --maxfail=3 --verbose
C. [pytest] addopts = --maxfail=3 --verbose
D. [pytest] addopts --maxfail=3 --verbose

Solution

  1. Step 1: Check correct syntax for ini files

    In pytest.ini, options are set as key = value pairs under [pytest] section.
  2. Step 2: Validate option format

    Options must be space-separated strings with dashes, e.g., --maxfail=3 --verbose.
  3. Final Answer:

    [pytest]\naddopts = --maxfail=3 --verbose -> Option C
  4. Quick Check:

    Ini syntax uses = and spaces for addopts [OK]
Hint: Use '=' after addopts and space-separated options [OK]
Common Mistakes:
  • Using ':' instead of '='
  • Omitting dashes before options
  • Not placing options under [pytest] section
3. Given this pytest.ini content:
[pytest]
addopts = --maxfail=2 --tb=short

What will happen when you run pytest tests/ without extra options?
medium
A. Pytest runs all tests and shows full tracebacks
B. Pytest stops after 2 failures and shows short tracebacks
C. Pytest ignores addopts and runs normally
D. Pytest throws a syntax error due to addopts

Solution

  1. Step 1: Understand addopts effect on pytest run

    The options --maxfail=2 and --tb=short set limits on failures and traceback style by default.
  2. Step 2: Predict behavior without extra command-line options

    Since addopts sets defaults, pytest will stop after 2 failures and show short tracebacks automatically.
  3. Final Answer:

    Pytest stops after 2 failures and shows short tracebacks -> Option B
  4. Quick Check:

    addopts options apply by default [OK]
Hint: Default options run automatically without typing them [OK]
Common Mistakes:
  • Assuming addopts is ignored
  • Thinking full tracebacks show by default
  • Expecting all tests to run despite maxfail
4. You added addopts = --maxfail=1 --verbose to pytest.ini but pytest still runs all tests without stopping early. What is the likely cause?
medium
A. The pytest.ini file is not in the current directory or pytest root
B. The --maxfail option does not work with addopts
C. You must run pytest with --use-addopts flag
D. Verbose mode disables maxfail stopping

Solution

  1. Step 1: Check pytest.ini location

    Pytest only reads pytest.ini if it is in the current directory or a parent directory of the test run.
  2. Step 2: Understand addopts behavior

    If pytest.ini is misplaced, addopts settings are ignored and default pytest behavior occurs.
  3. Final Answer:

    The pytest.ini file is not in the current directory or pytest root -> Option A
  4. Quick Check:

    pytest.ini location affects addopts usage [OK]
Hint: Ensure pytest.ini is in the test root folder [OK]
Common Mistakes:
  • Believing maxfail needs special flags
  • Thinking verbose disables maxfail
  • Ignoring pytest.ini file location
5. You want pytest to always run tests with coverage report and stop after 5 failures by default. Which addopts line in pytest.ini achieves this correctly?
hard
A. [pytest] addopts: --cov src --maxfail=5
B. [pytest] addopts = maxfail=5 --cov src
C. [pytest] addopts = --maxfail=5 --cov=src --stop
D. [pytest] addopts = --cov=src --maxfail=5

Solution

  1. Step 1: Understand correct option syntax

    Coverage option requires --cov=src with equals sign; maxfail uses --maxfail=5.
  2. Step 2: Check for invalid or missing syntax

    Options without '=' or extra unknown flags like --stop are incorrect.
  3. Final Answer:

    [pytest]\naddopts = --cov=src --maxfail=5 -> Option D
  4. Quick Check:

    Use '=' for options with values in addopts [OK]
Hint: Use '=' for options with values like --cov=src [OK]
Common Mistakes:
  • Omitting '=' in options with values
  • Adding unsupported flags like --stop
  • Switching order without '=' causing errors
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