Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
Why is it important to follow test naming conventions in pytest?
Following test naming conventions helps pytest automatically discover tests, makes tests easier to understand, and improves collaboration among team members.
Click to reveal answer
beginner
What prefix should pytest test functions start with?
Test functions should start with the prefix test_ so pytest can recognize and run them automatically.
Click to reveal answer
beginner
How should test names be written for clarity?
Test names should be descriptive and clear, explaining what the test checks, often using underscores to separate words, e.g., test_user_login_success.
Click to reveal answer
intermediate
Can pytest test classes have any name?
No, test classes should start with Test (capital T) and should not have an __init__ method to be discovered by pytest.
Click to reveal answer
beginner
What happens if a test function does not start with test_ in pytest?
Pytest will not recognize or run the function as a test, so it will be ignored during test execution.
Click to reveal answer
Which prefix should pytest test functions start with?
Averify_
Bcheck_
Ctest_
Drun_
✗ Incorrect
Pytest automatically discovers test functions that start with the prefix test_.
What is the recommended prefix for pytest test classes?
ATest
Btest
Ctestcase
DclassTest
✗ Incorrect
Test classes should start with a capital T as Test for pytest to discover them.
Why should test names be descriptive?
ATo make tests run faster
BTo avoid errors
CTo reduce code size
DTo help understand what the test checks
✗ Incorrect
Descriptive test names help developers quickly understand the purpose of the test.
What happens if a test function is named check_login instead of test_login?
APytest ignores it
BPytest runs it normally
CPytest runs it twice
DPytest throws an error
✗ Incorrect
Pytest ignores functions not starting with test_ during test discovery.
Which of these is a good test function name?
AtestUserLogin
Btest_user_login_success
CuserLoginTest
DloginTest
✗ Incorrect
Using lowercase with underscores and descriptive words like test_user_login_success follows pytest naming conventions.
Explain why pytest test functions must start with test_ and how this affects test discovery.
Think about how pytest finds tests to run.
You got /4 concepts.
Describe best practices for naming test functions and classes in pytest to improve readability and maintainability.
Consider clarity and pytest discovery rules.
You got /5 concepts.
Practice
(1/5)
1. Which of the following is the correct way to name a test function in pytest so it is automatically discovered?
easy
A. test_login_functionality
B. check_login_functionality
C. LoginTest
D. verifyLogin
Solution
Step 1: Understand pytest test discovery rules
pytest automatically finds test functions that start with test_.
Step 2: Check each option against the rule
Only test_login_functionality starts with test_, so pytest will find it automatically.
Final Answer:
test_login_functionality -> Option A
Quick Check:
Test names start with test_ = C [OK]
Hint: Test names must start with test_ to be found [OK]
Common Mistakes:
Not starting test names with test_
Using camelCase instead of snake_case
Using class names instead of functions
2. Which of the following test function names is syntactically correct in pytest?
easy
A. test-user-login
B. test-UserLogin
C. test_user_login
D. test user login
Solution
Step 1: Identify valid Python function names
Function names must use letters, numbers, and underscores only; no spaces or hyphens.
Step 2: Check each option
test_user_login uses underscores and is valid; others use hyphens, spaces which are invalid.
Final Answer:
test_user_login -> Option C
Quick Check:
Underscores allowed in function names = D [OK]
Hint: Use underscores, no spaces or hyphens in test names [OK]
Common Mistakes:
Using hyphens in function names
Including spaces in test names
Using camelCase instead of snake_case
3. Given the following pytest code, which test functions will pytest discover and run?
C. test_addition, testMultiplication, and test_divide
D. test_addition only
Solution
Step 1: Identify pytest discovery rules for functions and methods
pytest finds functions starting with test_ and methods inside classes named Test* starting with test_.
Step 2: Analyze each function/method
test_addition is found; check_subtraction is ignored; testMultiplication is ignored due to camelCase; test_divide inside TestDivision class is found.
Final Answer:
test_addition and test_divide only -> Option A
Quick Check:
Functions/methods start with test_ = A [OK]
Hint: pytest finds test_ functions and test_ methods in Test* classes [OK]
Common Mistakes:
Assuming camelCase test names are found
Ignoring test methods inside Test classes
Thinking all functions are discovered
4. You wrote a test function named Test_login but pytest does not run it. What is the most likely reason?
medium
A. Function is inside a class without Test prefix
B. Function name contains uppercase letters
C. Function is missing parentheses
D. Function name does not start with lowercase test_
Solution
Step 1: Recall pytest naming rules for functions
pytest requires test functions to start with lowercase test_ exactly.
Step 2: Analyze the function name Test_login
It starts with uppercase T, so pytest ignores it.
Final Answer:
Function name does not start with lowercase test_ -> Option D
Quick Check:
Lowercase test_ prefix required = A [OK]
Hint: Test function names must start with lowercase test_ [OK]
Common Mistakes:
Using uppercase T in test function names
Assuming pytest finds any function with 'test' inside
Ignoring function naming case sensitivity
5. You want to write clear pytest test names that describe what they check. Which of the following is the best test function name for checking if a user can log in with valid credentials?
hard
A. test1
B. test_valid_user_login
C. test_login
D. test_user_login_with_valid_credentials_and_session_creation
Solution
Step 1: Consider clarity and brevity in test names
Good test names are clear but not overly long or vague.
Step 2: Evaluate each option
test_valid_user_login clearly states the test purpose concisely. test1 is vague. test_login is too general. test_user_login_with_valid_credentials_and_session_creation is too long and hard to read.
Final Answer:
test_valid_user_login -> Option B
Quick Check:
Clear and concise descriptive names = B [OK]
Hint: Choose clear, concise test names describing the check [OK]