Python console app hangman game based on the code by Mark Patterson
pip install poetry
poetry install
poetry run python app/hangman.py
- do not move/delete the source files from the folders
- submission: commit and push your changes to the current project to GitHub
- do not edit autograding or classroom files
⚠️ Note: the autograding is simplified on purpose, it will be overwritten after the submission deadline with additional tests and quiz grading
⚠️ Note:app/hangman.py
should not be changed, anyways it will be overwritten in the post processing for the final autograding
⚠️ Note:tests/test_hangman.py
All your tests should be in this file
⚠️ Note:.github/workflows/main.yaml
Your CI pipeline should be in this file
⚠️ Note: For the coverage threashold, use the command line only in the pipeline.
-
Calculate the minimum number of the basis path test cases needed for the 'hangman.py::hangman'
-
Add the number here between the brackets.
Your answer. For example (5):
Q1 (__)
- Create test cases with the minimum 85% of combined coverage (lines and branch coverage) for the whole
hangman.py
- Place your tests under the
tests/test_hangman.py
folder
⚠️ Note: thehangman.py
should not be modified. It will be overwriten for in the final autograding stage after the submission deadline.
- What is the line coverage of your test suite for the
hangman.py
?
Your answer in %. For example (86):
Q2 (__)
- What is the current branch coverage of your test suite for the
hangman.py
?
Your answer in %. For example (86):
Q3 (__)
- Add
main.yaml
that runs your test suite fromtests/
and has the minimum coverage criteria for the wholehangman.py
of 85% for the combined coverage (total coverage including lines + branches)
⚠️ Note: For the coverage threashold, use the command line only in the pipeline. Do not use config files.
- Check the basis path tutorial
- Check the python testing tutorial
- you may need to recall the lab on metrics to get the answer to Q1
- you may need pytest-cov module installed
- you may need to generate and check coverage.json to get the raw data and calculate exact numbers for the coverage