Bird
Raised Fist0
PyTesttesting~10 mins

Command-line options 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 run pytest with verbose output.

PyTest
pytest [1]
Drag options to blanks, or click blank then click option'
A-v
B-q
C--maxfail=1
D--disable-warnings
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-q' which makes output quieter instead of verbose.
Using '--maxfail=1' which stops after one failure, not verbose output.
2fill in blank
medium

Complete the command to stop pytest after the first failure.

PyTest
pytest [1]
Drag options to blanks, or click blank then click option'
A--maxfail=1
B-v
C-q
D--disable-warnings
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-v' which only changes verbosity.
Using '-q' which quiets output but does not stop on failure.
3fill in blank
hard

Fix the error in the command to disable warnings during pytest run.

PyTest
pytest [1]
Drag options to blanks, or click blank then click option'
A-dw
B-w
C--disable-warnings
D--no-warnings
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-w' which is not a valid pytest option.
Using '--no-warnings' which does not exist.
4fill in blank
hard

Fill both blanks to run pytest quietly and stop after 2 failures.

PyTest
pytest [1] [2]
Drag options to blanks, or click blank then click option'
A-q
B-v
C--maxfail=2
D--disable-warnings
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-v' instead of '-q' for quiet mode.
Using '--maxfail=1' instead of 2.
5fill in blank
hard

Fill all three blanks to run pytest with verbose output, stop after 3 failures, and disable warnings.

PyTest
pytest [1] [2] [3]
Drag options to blanks, or click blank then click option'
A-v
B--maxfail=3
C--disable-warnings
D-q
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-q' instead of '-v' for verbosity.
Using wrong maxfail number.
Omitting the disable warnings option.

Practice

(1/5)
1. What does the pytest command-line option -v do when running tests?
easy
A. Runs tests only once without reruns
B. Runs tests in quiet mode, suppressing output
C. Generates a test coverage report
D. Runs tests in verbose mode, showing each test name

Solution

  1. Step 1: Understand the -v option in pytest

    The -v option stands for verbose mode, which means pytest will show detailed information about each test it runs.
  2. Step 2: Compare with other options

    Options like quiet mode or coverage report are different flags, so -v specifically increases output detail.
  3. Final Answer:

    Runs tests in verbose mode, showing each test name -> Option D
  4. Quick Check:

    Verbose = detailed output [OK]
Hint: Verbose means more details shown during test run [OK]
Common Mistakes:
  • Confusing verbose with quiet mode
  • Thinking it runs tests only once
  • Mixing it with coverage report option
2. Which of the following is the correct syntax to run pytest and stop after the first failure?
easy
A. pytest -x
B. pytest --stop-on-failure
C. pytest --failfast=false
D. pytest -f

Solution

  1. Step 1: Recall pytest option to stop on first failure

    The correct option is -x, which tells pytest to stop after the first test failure.
  2. Step 2: Check other options for correctness

    --stop-on-failure and --failfast=false are invalid, and -f is not a recognized pytest option.
  3. Final Answer:

    pytest -x -> Option A
  4. Quick Check:

    Stop on first failure = -x [OK]
Hint: Use -x to stop pytest after first failure [OK]
Common Mistakes:
  • Using long option names that don't exist
  • Confusing -f with -x
  • Assuming --failfast=false stops tests
3. Given the command pytest -k 'test_add or test_subtract' -v, what will pytest do?
medium
A. Run all tests except those named test_add or test_subtract
B. Run only tests named test_add or test_subtract with verbose output
C. Run tests with names containing 'test' only
D. Run tests and stop after first failure

Solution

  1. Step 1: Understand the -k option

    The -k option filters tests by substring expressions. Here, it selects tests named test_add or test_subtract.
  2. Step 2: Understand the -v option

    The -v option runs tests in verbose mode, showing detailed test names and results.
  3. Final Answer:

    Run only tests named test_add or test_subtract with verbose output -> Option B
  4. Quick Check:

    -k filters tests, -v shows details [OK]
Hint: -k filters tests by name, -v shows details [OK]
Common Mistakes:
  • Thinking -k excludes tests instead of including
  • Ignoring the verbose flag
  • Assuming it stops on failure
4. You run pytest --maxfail=2 -v but pytest does not stop after 2 failures. What is the likely cause?
medium
A. You need to add -x to stop after max failures
B. The option --maxfail requires a space before the number
C. The --maxfail option is deprecated and ignored
D. You must use --maxfail=2 without -v

Solution

  1. Step 1: Understand --maxfail behavior

    The --maxfail option sets how many failures to allow before stopping, but it requires -x to actually stop the test run.
  2. Step 2: Check command usage

    Without -x, pytest will report max failures but continue running all tests.
  3. Final Answer:

    You need to add -x to stop after max failures -> Option A
  4. Quick Check:

    --maxfail needs -x to stop tests [OK]
Hint: Add -x with --maxfail to stop tests early [OK]
Common Mistakes:
  • Thinking --maxfail alone stops tests
  • Adding space between --maxfail and number
  • Assuming -v disables maxfail
5. You want to run pytest only on tests marked as slow and generate a JUnit XML report saved as results.xml. Which command is correct?
hard
A. pytest --only-mark slow --junitxml results.xml
B. pytest --mark slow --xml=results.xml
C. pytest -m slow --junitxml=results.xml
D. pytest -m slow -x --junit=results.xml

Solution

  1. Step 1: Use -m to select tests by marker

    The -m option filters tests by marker name, so -m slow runs only tests marked as slow.
  2. Step 2: Use --junitxml=filename to generate report

    The --junitxml=results.xml option saves test results in JUnit XML format to the specified file.
  3. Step 3: Verify other options are invalid

    Options like --mark, --xml, and --only-mark are not valid pytest flags.
  4. Final Answer:

    pytest -m slow --junitxml=results.xml -> Option C
  5. Quick Check:

    -m for marker, --junitxml for report [OK]
Hint: Use -m for markers and --junitxml for reports [OK]
Common Mistakes:
  • Using incorrect flags like --mark or --xml
  • Forgetting = between --junitxml and filename
  • Adding -x which stops tests unnecessarily
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