lab-coverage-maksktl created by GitHub Classroom
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
e-maks ae1f5f4b50 Fix dependencies 2 years ago
.github Fix dependencies 2 years ago
app Initial commit 2 years ago
tests lab coverage 2 years ago
.gitignore lab coverage 2 years ago
LICENSE Initial commit 2 years ago
README.md lab coverage 2 years ago
cov.json lab coverage 2 years ago
poetry.lock lab coverage 2 years ago
pyproject.toml Fix dependencies 2 years ago

README.md

Review Assignment Due Date

Hangman Game

Python console app hangman game based on the code by Mark Patterson

Install dependencies and run

  1. pip install poetry
  2. poetry install
  3. poetry run python app/hangman.py

Lab "Test Coverage" Assignment

Important instructions

  1. do not move/delete the source files from the folders
  2. submission: commit and push your changes to the current project to GitHub
  3. 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.

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 (4)

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.py folder

Note: the hangman.py should 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 (89)

  • What is the current branch coverage of your test suite for the hangman.py?

Your answer in %. For example (86):

Q3 (90)

Add CI (1pt)

  • Add main.yaml that runs your test suite from tests/ and has the minimum coverage criteria for the whole hangman.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.

Hints

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