|
|
2 years ago | |
|---|---|---|
| .github | 2 years ago | |
| app | 2 years ago | |
| tests | 2 years ago | |
| .gitignore | 2 years ago | |
| LICENSE | 2 years ago | |
| README.md | 2 years ago | |
| poetry.lock | 2 years ago | |
| pyproject.toml | 2 years ago | |
README.md
Hangman Game
Python console app hangman game based on the code by Mark Patterson
Install dependencies and run
pip install poetrypoetry installpoetry run python app/hangman.py
Lab "Test Coverage" Assignment
Important instructions
- 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.pyshould not be changed, anyways it will be overwritten in the post processing for the final autograding
⚠️ Note:
tests/test_hangman.pyAll your tests should be in this file
⚠️ Note:
.github/workflows/main.yamlYour CI pipeline should be in this file
⚠️ Note: For the coverage threashold, use the command line only in the pipeline.
Basis path testing (1pt)
-
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 (3pt)
- 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.pyfolder
⚠️ Note: the
hangman.pyshould not be modified. It will be overwriten for in the final autograding stage after the submission deadline.
Calculate coverage (1pt)
- 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 CI (1pt)
- Add
main.yamlthat runs your test suite fromtests/and has the minimum coverage criteria for the wholehangman.pyof 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.
Hints
- Check the basis path tutorial
- Check the python testing tutorial
Spoilers
- 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