Testing
We encourage users to build application tests. As best practice, this should be done immediately after documentation of the application being built, before starting on any coding.
Pytest
This project uses the Pytest, a framework for easily building simple and scalable tests. After you have set up to develop locally, run the following commands to make sure the testing environment is ready:
$ pytest
You will get a readout of the users app that has already been set up with tests. If you do not want to run the pytest on the entire project, you can target a particular app by typing in its location:
$ pytest <path-to-app-in-project/app>
If you set up your project to develop locally with docker, run the following command:
$ docker-compose -f local.yml run --rm django pytest
Targeting particular apps for testing in docker
follows a similar pattern as previously shown above.
Coverage
You should build your tests to provide the highest level of code coverage. You can run the pytest
with code coverage
by typing in the following command:
$ coverage run -m pytest
Once the tests are complete, in order to see the code coverage, run the following command:
$ coverage report
If you’re running the project locally with Docker, use these commands instead:
$ docker-compose -f local.yml run --rm django coverage run -m pytest
$ docker-compose -f local.yml run --rm django coverage report
Note
At the root of the project folder, you will find the pytest.ini file. You can use this to customize the pytest
to your liking.
There is also the .coveragerc. This is the configuration file for the coverage
tool. You can find out more about configuring coverage
.
See also
For unit tests, run:
$ python manage.py test
Since this is a fresh install, and there are no tests built using the Python unittest library yet, you should get feedback that says there were no tests carried out.