This script defines three tests for the add function. One test is designed to fail. Running the script will execute tests and save the results in 'test_results.xml'.
PyTest
import pytest
def add(a, b):
return a + b
def test_add_positive():
assert add(2, 3) == 5def test_add_negative():
assert add(-1, -1) == -2def test_add_fail():
assert add(2, 2) == 5# This test will failif __name__ == '__main__':
# Run pytest and save results to 'test_results.xml'
pytest.main(['-v', '--junitxml=test_results.xml'])
OutputSuccess
Important Notes
Test result publishing helps track test outcomes outside the console.
JUnit XML format is widely supported by many CI/CD tools.
Make sure to run tests with the --junitxml option to generate reports.
Summary
Test result publishing shares test outcomes with others.
Use pytest --junitxml=filename.xml to save results.
Reports help find errors and improve code quality.
Practice
(1/5)
1. What is the main purpose of publishing test results in pytest?
easy
A. To change the test code behavior
B. To speed up test execution time
C. To write more test cases automatically
D. To share test outcomes with team members or tools
Solution
Step 1: Understand test result publishing
Publishing test results means sharing what happened during tests with others.
Step 2: Identify the purpose in pytest context
In pytest, publishing results helps teams see which tests passed or failed.
Final Answer:
To share test outcomes with team members or tools -> Option D
Quick Check:
Test result publishing = sharing outcomes [OK]
Hint: Publishing means sharing test results with others [OK]
Common Mistakes:
Thinking publishing speeds up tests
Confusing publishing with writing tests
Believing publishing changes test code
2. Which pytest command correctly saves test results to an XML file named results.xml?
easy
A. pytest --junitxml=results.xml
B. pytest --savexml=results.xml
C. pytest --output=results.xml
D. pytest --xmlfile=results.xml
Solution
Step 1: Recall pytest command for XML report
The correct option uses --junitxml to save results in XML format.
Step 2: Match the command with the filename
Using pytest --junitxml=results.xml saves the test report as results.xml.
Final Answer:
pytest --junitxml=results.xml -> Option A
Quick Check:
Use --junitxml to save XML report [OK]
Hint: Use --junitxml=filename.xml to save results [OK]
Common Mistakes:
Using --savexml instead of --junitxml
Using --output or --xmlfile which are invalid
Forgetting the equals sign '='
3. Given this pytest command:
pytest --junitxml=report.xml
What will happen after running tests?
medium
A. Test results will be saved in a file named report.xml
B. Tests will not run due to syntax error
C. Tests will run but no results will be saved
D. Test results will be printed only on the console
Solution
Step 1: Understand the command option
The option --junitxml=report.xml tells pytest to save results in XML format to the file report.xml.
Step 2: Predict the outcome after running tests
Tests run normally and results are saved in the specified XML file.
Final Answer:
Test results will be saved in a file named report.xml -> Option A
Quick Check:
--junitxml saves results to XML file [OK]
Hint: Look for --junitxml to save results to XML file [OK]
Common Mistakes:
Thinking results only print on console
Assuming tests won't run with this option
Confusing file saving with syntax errors
4. You run pytest --junitxml report.xml but no report.xml file is created. What is the likely problem?
medium
A. pytest does not support XML reports
B. The command is missing an equals sign between option and filename
C. The test files are empty so no report is generated
D. The filename must be results.xml exactly
Solution
Step 1: Check the command syntax
The correct syntax requires an equals sign: --junitxml=report.xml.
Step 2: Understand effect of missing equals sign
Without '=', pytest treats report.xml as a positional argument, so no file is created.
Final Answer:
The command is missing an equals sign between option and filename -> Option B
Quick Check:
Use '=' after --junitxml to save file [OK]
Hint: Remember to use '=' after --junitxml option [OK]
Common Mistakes:
Omitting the equals sign in command
Thinking empty tests prevent report creation
Believing pytest can't create XML reports
5. You want to publish pytest results in XML and also ensure the report includes test durations. Which command should you use?
hard
A. pytest --xmlreport=report.xml --showdurations
B. pytest --junitxml=report.xml --duration=all
C. pytest --junitxml=report.xml --durations=0
D. pytest --junitxml report.xml --durations
Solution
Step 1: Identify correct option for XML report
The option --junitxml=report.xml correctly saves results in XML format.
Step 2: Add option to show all test durations
The option --durations=0 tells pytest to show durations for all tests.
Step 3: Verify combined command correctness
Combining both options as pytest --junitxml=report.xml --durations=0 is valid and achieves the goal.
Final Answer:
pytest --junitxml=report.xml --durations=0 -> Option C
Quick Check:
Use --junitxml and --durations=0 together [OK]
Hint: Use --junitxml=filename and --durations=0 for full report [OK]
Common Mistakes:
Using wrong option names like --xmlreport
Missing equals sign in options
Using incorrect values like --duration=all
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.