In this exercise you will work with your group to get to full code coverage and fix any bugs that you find.
-
On Github, click on the "Fork" button in the top right corner and fork the repository to your Github account. This will make a copy of the project in your Github account.
-
On Github, add the other member(s) of your team as collaborators to your fork of the repository. To do this the student who forked the repository should first choose "Settings" from the top menu bar (underneath the bar with the "Pin" button), then under the "Access" heading select "Collaborators", then under "Manage access" select "Add people".
-
Clone a copy of this exercise. This command makes a new folder called
code-coverage-exercise
, and then puts the exercise into this new folder.
git clone ...
Use ls
to confirm there's a new project folder
- Move your location into this project folder
cd code-coverage-exercise
- Create a virtual environment named
venv
for this project:
python3 -m venv venv
- Activate this environment:
source venv/bin/activate
Verify that you're in a python3 virtual environment by running:
$ python --version
should output a Python 3 version$ pip --version
should output that it is working with Python 3
- Install dependencies once at the beginning of this exercise with
# Must be in activated virtual environment
pip install -r requirements.txt
- Exit and re-enter the virtual enviornment with the following command. This is needed to ensure the correct version of pytest is used in the terminal.
deactivate && source venv/bin/activate
To check the code coverage you can run:
pytest --cov=student --cov-report html --cov-report term
To see the detailed report (after running the above) you can open it in your default browser with:
open htmlcov/index.html
The above commands need to be run from the root folder of the project.
Running the commands in the terminal:
Once you've loaded the detailed report you can click on the file names to see information about what lines are missing code coverage.
The front page of the detailed report:
The details for student/student.py:
The lines with coverage have a green line by their line number, the lines without coverage have a red one and a highlighted background.
To read more about pytest-cov you can consult the pytest-cov documentation.