Skipped tests do not run, so their code is not executed.
Always provide a clear reason to help others understand why the test is skipped.
Summary
@pytest.mark.skip lets you skip tests with a clear reason.
Skipped tests show in reports but do not run.
Use it to keep your test suite clean and understandable.
Practice
(1/5)
1. What does the decorator @pytest.mark.skip(reason="some reason") do in a pytest test function?
easy
A. It skips the test and shows the given reason in the test report.
B. It runs the test but logs the reason as a warning.
C. It marks the test to run only if the reason is true.
D. It deletes the test from the test suite.
Solution
Step 1: Understand the purpose of @pytest.mark.skip
This decorator tells pytest to skip running the test function it decorates.
Step 2: Reason parameter usage
The reason string is shown in the test report to explain why the test was skipped.
Final Answer:
It skips the test and shows the given reason in the test report. -> Option A
Quick Check:
@pytest.mark.skip(reason=...) skips test with reason [OK]
Hint: Skip tests with reason to explain why [OK]
Common Mistakes:
Thinking it runs the test but logs reason
Confusing skip with conditional run
Assuming it deletes the test
2. Which of the following is the correct syntax to skip a test using the named argument `reason="Not implemented yet"` using pytest?
easy
A. @pytest.mark.skip_test(reason="Not implemented yet")
B. @pytest.mark.skip("Not implemented yet")
C. @pytest.skip(reason="Not implemented yet")
D. @pytest.mark.skip(reason="Not implemented yet")
Solution
Step 1: Recall correct decorator syntax
The correct decorator is @pytest.mark.skip with a named argument reason="...".
Step 2: Check each option
@pytest.mark.skip(reason="Not implemented yet") uses the correct decorator and named argument syntax. Others are either missing the named argument or use incorrect decorator names.
Final Answer:
@pytest.mark.skip(reason="Not implemented yet") -> Option D
Quick Check:
Use @pytest.mark.skip(reason=...) syntax [OK]
Hint: Use named argument reason="..." with @pytest.mark.skip [OK]
Common Mistakes:
Passing reason as positional argument
Using @pytest.skip instead of @pytest.mark.skip
Using wrong decorator names
3. What will be the output when running this pytest code?
B. Reason should be passed as a named argument, not positional.
C. The test function must have parameters to use skip.
D. The assert statement is incorrect.
Solution
Step 1: Check decorator syntax
The decorator is written as @pytest.mark.skip "Not ready" without parentheses around the argument, causing a syntax error.
Step 2: Correct usage
Valid syntax is @pytest.mark.skip("Not ready") or @pytest.mark.skip(reason="Not ready").
Final Answer:
Missing parentheses after @pytest.mark.skip -> Option A
Quick Check:
Always use parentheses for decorator arguments [OK]
Hint: Always use reason= keyword with @pytest.mark.skip [OK]
Common Mistakes:
Missing parentheses after @pytest.mark.skip
Passing reason as positional argument
Misusing decorator syntax
5. You want to skip a test only if a certain environment variable SKIP_TEST is set to "true", and provide the reason "Skipped due to env setting". Which pytest code correctly implements this?
hard
A. import os
import pytest
if os.getenv('SKIP_TEST') == 'true':
@pytest.mark.skip(reason="Skipped due to env setting")
def test_conditional():
assert True
B. import os
import pytest
@pytest.mark.skip(reason="Skipped due to env setting")
def test_conditional():
assert True
C. import os
import pytest
@pytest.mark.skipif(os.getenv('SKIP_TEST') == 'true', reason="Skipped due to env setting")
def test_conditional():
assert True
D. import os
import pytest
@pytest.skipif(reason="Skipped due to env setting")
def test_conditional():
assert True
Solution
Step 1: Understand conditional skipping
To skip a test based on a condition, use @pytest.mark.skipif(condition, reason=...).
Step 2: Check each option
import os
import pytest
@pytest.mark.skipif(os.getenv('SKIP_TEST') == 'true', reason="Skipped due to env setting")
def test_conditional():
assert True correctly uses skipif with the environment variable condition and reason. import os
import pytest
@pytest.mark.skip(reason="Skipped due to env setting")
def test_conditional():
assert True always skips. import os
import pytest
if os.getenv('SKIP_TEST') == 'true':
@pytest.mark.skip(reason="Skipped due to env setting")
def test_conditional():
assert True tries to conditionally decorate but syntax is invalid. import os
import pytest
@pytest.skipif(reason="Skipped due to env setting")
def test_conditional():
assert True uses wrong decorator name.
Final Answer:
Use @pytest.mark.skipif with condition and reason. -> Option C
Quick Check:
Use skipif(condition, reason=...) for conditional skip [OK]
Hint: Use @pytest.mark.skipif for conditional skipping [OK]
Common Mistakes:
Using skip instead of skipif for conditions
Incorrect decorator syntax
Trying to conditionally decorate inside if-block
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.