From e02b0acefe2ccf91f736603b1112c3dd71eaad75 Mon Sep 17 00:00:00 2001 From: Christian Merten Date: Sun, 19 Jan 2025 11:37:00 +0100 Subject: [PATCH] docker/test: improve setup `make test` now automatically forces a rebuild. Also passing `keepdb=true` runs the test suite with `--keepdb` which is useful when repeatedly running tests. --- Makefile | 12 ++++++++---- docker/test/docker-compose.yaml | 2 ++ docker/test/entrypoint-master.sh | 6 +++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index b76f56c..f40252a 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,12 @@ build-test: cd docker/test; docker compose build -test: - touch docker/test/coverage.xml - chmod 666 docker/test/coverage.xml +test: build-test + mkdir -p docker/test/htmlcov + chmod 777 docker/test/htmlcov +ifeq ($(keepdb), true) + cd docker/test; DJANGO_TEST_KEEPDB=1 docker compose up --abort-on-container-exit +else cd docker/test; docker compose up --abort-on-container-exit - sed -i 's/\/app\/jdav_web/jdav_web/g' docker/test/coverage.xml +endif + echo "Generated coverage report. To read it, point your browser to:\n\nfile://$$(pwd)/docker/test/htmlcov/index.html" diff --git a/docker/test/docker-compose.yaml b/docker/test/docker-compose.yaml index edbb892..7bf2a02 100644 --- a/docker/test/docker-compose.yaml +++ b/docker/test/docker-compose.yaml @@ -7,6 +7,8 @@ services: context: ./../../ dockerfile: docker/test/Dockerfile env_file: docker.env + environment: + - DJANGO_TEST_KEEPDB=$DJANGO_TEST_KEEPDB depends_on: - redis - cache diff --git a/docker/test/entrypoint-master.sh b/docker/test/entrypoint-master.sh index 2c80809..1e219f8 100755 --- a/docker/test/entrypoint-master.sh +++ b/docker/test/entrypoint-master.sh @@ -38,5 +38,9 @@ fi cd jdav_web -coverage run manage.py test startpage finance members contrib logindata mailer material -v 2 --noinput +if [[ "$DJANGO_TEST_KEEPDB" == 1 ]]; then + coverage run manage.py test startpage finance members contrib logindata mailer material -v 2 --noinput --keepdb +else + coverage run manage.py test startpage finance members contrib logindata mailer material -v 2 --noinput +fi coverage html