-
Notifications
You must be signed in to change notification settings - Fork 0
Testing
Backend unit/integration test are done with the unittest framework. Because we work with docker, the tests needs to run in the docker. This can be done with following commands. It is of course necessary to first start the docker environment before running these commands.
-
Run all tests:
docker exec -it DrTrottoir-be python manage.py test
-
Run one test file:
docker exec -it DrTrottoir-be python manage.py test drtrottoir.tests.<TESTFILE>
-
Run one test class:
docker exec -it DrTrottoir-be python manage.py test drtrottoir.tests.<TESTFILE>:<TESTCLASS>
-
Run a single test:
docker exec -it DrTrottoir-be python manage.py test drtrottoir.tests.<TESTFILE>:<TESTCLASS>.<TESTMETHOD>
When all tests succeed, the coverage of the tests will also be showen in stdout. The coverage will be calculated for all the files in the Dr-Trottoir-2/drtrottoir
directory. This can be edited in manage.py
and it is also possible to omit some files there. We use the coverage.py
library for calculating the coverage of our tests in the backend.
Some usefull links:
It is possible to use the data in fixtures in your test, more info in the django documentation:
- https://docs.djangoproject.com/en/4.1/topics/testing/tools/#django.test.TransactionTestCase.fixtures
It is possible to populate the database with dummy data with fixtures. These fixtures are JSON or YAML files where you can put your dummy data.
The database can be populated with following command:
sudo docker exec -it DrTrottoir-be python manage.py loaddata fixtures/<filename>.json
To add more data, it is possible to manually add it to the init_data.json file or create your own .json file. When you already added the data into the database and want to extract it, you can do it with the following command:
sudo docker exec -it DrTrottoir-be python manage.py dumpdata drtrottoir --indent 4 > fixtures/<filename>.json
Some usefull links:
We use 2 testing frameworks to test the frontend.
- For unit testing, we use Jest.
- For component and e2e testing, we can use cypress.
To run the Jest tests, you can run following command:
docker exec -it DrTrottoir-fe npm run jest
The cypress tests are not yet possible to run in the docker due to some issues/errors. These tests can be ran locally (if they don't need the backend) with follow commands:
npm run cypress
npm run e2e
npm run e2e:headless
npm run component
npm run component:headless
ideally it will also be possible in the future to run these tests in the docker with the following command:
docker exec -it DrTrottoir-fe <npm command>
Some usefull links: