Bird
Raised Fist0
PyTesttesting~5 mins

Marker registration in PyTest - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a marker in pytest?
A marker is a label you can add to tests to organize, select, or skip them during test runs.
Click to reveal answer
beginner
Why do you need to register markers in pytest?
To avoid warnings and to document custom markers so pytest knows they are valid and how to use them.
Click to reveal answer
beginner
Where do you register custom markers in pytest?
In the pytest.ini file under the [pytest] section using the markers option.
Click to reveal answer
beginner
Example of registering a custom marker named 'slow' in pytest.ini?
Add this line in pytest.ini: markers = slow: marks tests as slow to run
Click to reveal answer
beginner
How do you run only tests marked with a registered marker 'slow'?
Use the command: pytest -m slow
Click to reveal answer
What happens if you use a custom marker without registering it in pytest.ini?
ATests with that marker fail automatically.
BPytest ignores the marker silently.
CPytest registers the marker automatically.
DPytest shows a warning about unknown marker.
Where do you add marker registration in a pytest project?
AIn pytest.ini file under [pytest] section.
BIn the test file as a comment.
CIn the Python test function docstring.
DIn the command line only.
How do you mark a test as 'slow' in pytest after registering the marker?
AName the test function slow_test().
BAdd @pytest.mark.slow above the test function.
CAdd slow=True in the test function parameters.
DUse a comment # slow inside the test.
What command runs only tests marked with 'slow'?
Apytest -m slow
Bpytest --only slow
Cpytest --mark slow
Dpytest --filter slow
Which section header is used in pytest.ini to register markers?
A[markers]
B[test_markers]
C[pytest]
D[custom]
Explain how to create and register a custom marker in pytest.
Think about configuration and usage steps.
You got /5 concepts.
    Describe how to run tests selectively using markers in pytest.
    Focus on command line usage.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of registering markers in pytest.ini?
      easy
      A. To avoid warnings when using custom markers in tests
      B. To automatically run all tests without specifying markers
      C. To disable all markers in the test suite
      D. To change the default test discovery pattern

      Solution

      1. Step 1: Understand marker registration role

        Markers must be registered in pytest.ini to inform pytest about custom markers.
      2. Step 2: Identify effect of registration

        Without registration, pytest shows warnings about unknown markers; registration prevents these warnings.
      3. Final Answer:

        To avoid warnings when using custom markers in tests -> Option A
      4. Quick Check:

        Marker registration = avoid warnings [OK]
      Hint: Register markers in pytest.ini to stop warnings [OK]
      Common Mistakes:
      • Thinking registration runs tests automatically
      • Believing registration disables markers
      • Confusing marker registration with test discovery
      2. Which of the following is the correct syntax to register a custom marker named slow in pytest.ini?
      easy
      A. [pytest] markers = slow: marks tests as slow
      B. [markers] slow = marks tests as slow
      C. [pytest] marker = slow: marks tests as slow
      D. [pytest] markers = slow marks tests as slow

      Solution

      1. Step 1: Recall pytest.ini marker syntax

        Markers are registered under the [pytest] section with the key 'markers' followed by marker descriptions.
      2. Step 2: Match correct syntax

        [pytest] markers = slow: marks tests as slow correctly uses '[pytest]' section and 'markers = slow: marks tests as slow' format.
      3. Final Answer:

        [pytest] markers = slow: marks tests as slow -> Option A
      4. Quick Check:

        Correct section and key = [pytest] markers = slow: marks tests as slow [OK]
      Hint: Use [pytest] and 'markers =' to register markers [OK]
      Common Mistakes:
      • Using wrong section name like [markers]
      • Misspelling 'markers' key
      • Omitting colon after marker name
      3. Given the following pytest.ini content and test code, what will be the result when running pytest -m slow?
      [pytest]
      markers = slow: marks tests as slow
      
      import pytest
      
      @pytest.mark.slow
      def test_example():
          assert True
      
      def test_fast():
          assert True
      
      medium
      A. Only test_fast runs and passes
      B. Both test_example and test_fast run and pass
      C. Only test_example runs and passes
      D. No tests run due to marker misconfiguration

      Solution

      1. Step 1: Understand -m slow option

        The -m slow option runs only tests marked with @pytest.mark.slow.
      2. Step 2: Identify marked tests

        test_example is marked with @pytest.mark.slow, test_fast is not.
      3. Final Answer:

        Only test_example runs and passes -> Option C
      4. Quick Check:

        Run with -m slow = only slow tests run [OK]
      Hint: -m runs only tests with matching marker [OK]
      Common Mistakes:
      • Assuming all tests run with -m option
      • Confusing marker name with test function name
      • Ignoring marker registration effect
      4. You added a custom marker database to your tests but pytest shows a warning: PytestUnknownMarkWarning. What is the most likely cause and how to fix it?
      medium
      A. You must run pytest with --disable-warnings to hide the message
      B. You forgot to register the database marker in pytest.ini; add it under [pytest] markers
      C. You need to rename the marker to db to avoid warnings
      D. You used @pytest.mark.database incorrectly; remove the decorator

      Solution

      1. Step 1: Identify cause of PytestUnknownMarkWarning

        This warning appears when a custom marker is used but not registered in pytest.ini.
      2. Step 2: Fix by registering marker

        Add database marker under the [pytest] section in pytest.ini to register it and remove the warning.
      3. Final Answer:

        You forgot to register the database marker in pytest.ini; add it under [pytest] markers -> Option B
      4. Quick Check:

        Warning = missing marker registration [OK]
      Hint: Register all custom markers in pytest.ini to avoid warnings [OK]
      Common Mistakes:
      • Ignoring the warning and continuing
      • Removing marker decorator instead of registering
      • Trying to rename marker instead of registering
      5. You want to run tests marked as api but skip those marked as slow. Your pytest.ini contains:
      [pytest]
      markers =
          api: marks API tests
          slow: marks slow tests
      
      Which command correctly runs only api tests excluding slow tests?
      hard
      A. pytest -m "not api and slow"
      B. pytest -m "api or slow"
      C. pytest -m "slow and not api"
      D. pytest -m "api and not slow"

      Solution

      1. Step 1: Understand marker expressions with -m

        The -m option accepts boolean expressions combining markers using and, or, and not.
      2. Step 2: Build expression for api tests excluding slow

        We want tests marked api but not slow, so expression is api and not slow.
      3. Final Answer:

        pytest -m "api and not slow" -> Option D
      4. Quick Check:

        Run api tests excluding slow = pytest -m "api and not slow" [OK]
      Hint: Use -m "api and not slow" to include/exclude markers [OK]
      Common Mistakes:
      • Using 'or' instead of 'and not' excludes wrong tests
      • Misplacing 'not' operator
      • Confusing marker names in expression
      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