Bird
Raised Fist0
PyTesttesting~10 mins

Grouping related tests 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 define a test function using pytest.

PyTest
def test_[1]():
    assert 2 + 2 == 4
Drag options to blanks, or click blank then click option'
Aaddition
Bsum
Ccheck
Dcalculate
Attempts:
3 left
💡 Hint
Common Mistakes
Not starting the function name with 'test_' so pytest won't detect it.
Using vague names that don't describe the test purpose.
2fill in blank
medium

Complete the code to group related tests inside a class using pytest.

PyTest
class TestMathOperations:
    def [1](self):
        assert 3 * 3 == 9
Drag options to blanks, or click blank then click option'
Atest_multiply
Bmultiply
Ccheck_multiply
Dmultiply_test
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting 'test_' prefix in method names inside test classes.
Using method names that don't start with 'test_' so pytest skips them.
3fill in blank
hard

Fix the error in the test class so pytest recognizes the test method.

PyTest
class TestStrings:
    def [1](self):
        assert 'hello'.upper() == 'HELLO'
Drag options to blanks, or click blank then click option'
Auppercase
Buppercase_test
Ccheck_uppercase
Dtest_uppercase
Attempts:
3 left
💡 Hint
Common Mistakes
Naming test methods without 'test_' prefix inside classes.
Using names that pytest does not recognize as tests.
4fill in blank
hard

Fill both blanks to create a test class with two test methods for addition and subtraction.

PyTest
class TestArithmetic:
    def [1](self):
        assert 1 + 1 == 2

    def [2](self):
        assert 5 - 3 == 2
Drag options to blanks, or click blank then click option'
Atest_addition
Badd_test
Ctest_subtraction
Dsubtract_test
Attempts:
3 left
💡 Hint
Common Mistakes
Not using 'test_' prefix for one or both methods.
Using unclear or inconsistent method names.
5fill in blank
hard

Fill all three blanks to create a test class with grouped tests for multiplication, division, and modulus.

PyTest
class TestOperations:
    def [1](self):
        assert 4 * 2 == 8

    def [2](self):
        assert 10 / 2 == 5

    def [3](self):
        assert 10 % 3 == 1
Drag options to blanks, or click blank then click option'
Atest_multiply
Btest_divide
Ctest_modulus
Dmultiply_test
Attempts:
3 left
💡 Hint
Common Mistakes
Using inconsistent naming conventions for test methods.
Forgetting the 'test_' prefix on any method.

Practice

(1/5)
1. What is the main benefit of grouping related tests in pytest?
easy
A. It keeps the test suite organized and easier to manage
B. It makes tests run faster automatically
C. It removes the need for assertions in tests
D. It prevents tests from running in parallel

Solution

  1. Step 1: Understand test grouping purpose

    Grouping tests helps organize them logically by feature or behavior.
  2. Step 2: Identify the main benefit

    This organization makes the test suite easier to maintain and understand.
  3. Final Answer:

    It keeps the test suite organized and easier to manage -> Option A
  4. Quick Check:

    Grouping = Organized tests [OK]
Hint: Grouping means organizing tests for easier management [OK]
Common Mistakes:
  • Thinking grouping speeds up tests automatically
  • Believing grouping removes need for assertions
  • Assuming grouping disables parallel runs
2. Which of the following is the correct way to mark a test function with a group name in pytest?
easy
A. @pytest.group('fast')\ndef test_example(): pass
B. @pytest.group_mark('fast')\ndef test_example(): pass
C. @pytest.mark.fast\ndef test_example(): pass
D. @pytest.tag('fast')\ndef test_example(): pass

Solution

  1. Step 1: Recall pytest syntax for marking tests

    pytest uses @pytest.mark.<groupname> to mark tests for grouping.
  2. Step 2: Match correct syntax

    @pytest.mark.fast is the correct decorator to mark a test as 'fast'.
  3. Final Answer:

    @pytest.mark.fast\ndef test_example(): pass -> Option C
  4. Quick Check:

    Use @pytest.mark.groupname for grouping [OK]
Hint: Use @pytest.mark.groupname to mark tests [OK]
Common Mistakes:
  • Using @pytest.group instead of @pytest.mark
  • Using @pytest.tag which does not exist
  • Incorrect decorator names like @pytest.group_mark
3. Given the following pytest code, what tests will run when executing pytest -m "slow"?
import pytest

@pytest.mark.slow
def test_a():
    assert True

@pytest.mark.fast
def test_b():
    assert True

class TestGroup:
    @pytest.mark.slow
    def test_c(self):
        assert True

    def test_d(self):
        assert True
medium
A. test_a and test_c only
B. test_b and test_d only
C. All tests test_a, test_b, test_c, test_d
D. Only test_c

Solution

  1. Step 1: Understand pytest -m option

    The -m option runs tests marked with the given marker, here 'slow'.
  2. Step 2: Identify tests marked 'slow'

    test_a and test_c have @pytest.mark.slow, so they run. test_b and test_d do not.
  3. Final Answer:

    test_a and test_c only -> Option A
  4. Quick Check:

    -m "slow" runs tests marked slow [OK]
Hint: -m runs only tests with the matching mark [OK]
Common Mistakes:
  • Running all tests ignoring marks
  • Including unmarked tests in filtered run
  • Confusing class-level marks with method marks
4. What is wrong with this pytest code if the goal is to group tests inside a class named TestMath?
class TestMath:
    def test_add():
        assert 1 + 1 == 2

    def test_subtract(self):
        assert 2 - 1 == 1
medium
A. test_subtract should not have self parameter
B. Class name should not start with Test
C. Tests inside classes cannot have assertions
D. test_add is missing the self parameter

Solution

  1. Step 1: Check method definitions inside test classes

    Instance methods inside test classes must have self as first parameter.
  2. Step 2: Identify the error

    test_add is missing self, so pytest will error or skip it.
  3. Final Answer:

    test_add is missing the self parameter -> Option D
  4. Quick Check:

    Test methods in classes need self [OK]
Hint: Test methods in classes must include self parameter [OK]
Common Mistakes:
  • Omitting self in test methods
  • Thinking class names cannot start with Test
  • Removing assertions from test methods
5. You want to run only tests related to the login feature in your pytest suite. You have marked tests with @pytest.mark.login and grouped some inside a class TestLogin. Which command will correctly run all login tests, including those inside the class?
hard
A. pytest -k login
B. pytest -m login
C. pytest --group=login
D. pytest --run-login

Solution

  1. Step 1: Understand pytest options for running grouped tests

    pytest uses -m to run tests marked with a specific marker like 'login'.
  2. Step 2: Identify correct command

    pytest -m login runs all tests marked with @pytest.mark.login, including those inside classes.
  3. Final Answer:

    pytest -m login -> Option B
  4. Quick Check:

    -m runs marked tests, -k filters by test name [OK]
Hint: Use -m with marker name to run grouped tests [OK]
Common Mistakes:
  • Using -k which filters by test name, not marker
  • Using nonexistent options like --group or --run-login
  • Assuming class name filters tests automatically
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