@@ -144,32 +144,46 @@ docker-restart: docker-down docker-up
144144# Testing Environment
145145# =============================================================================
146146
147+
147148# Run tests (automated testing environment)
148- test : docker-setup-env
149- @echo " 🧪 TESTING: Running complete test suite..."
150- cd containers && docker-compose -f docker-compose.test.yml up -d
151- @echo " >> Installing dependencies in test container..."
152- @sleep 10
153- docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test composer install --no-interaction --prefer-dist --optimize-autoloader
154- docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan key:generate --env=testing --force
155- docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan migrate:fresh --seed --env=testing --force
156- @echo " >> Running tests..."
157- docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan test --parallel --recreate-databases --stop-on-failure
158- cd containers && docker-compose -f docker-compose.test.yml down
159- @echo " ✅ SUCCESS: Tests completed!"
149+ test :
150+ @if docker-compose -f containers/docker-compose.test.yml ps | grep -q ' laravel_blog_api_test' && docker-compose -f containers/docker-compose.test.yml ps | grep ' Up' ; then \
151+ echo " 🧪 TESTING: Test container already running. Skipping setup..." ; \
152+ echo " >> Running tests..." ; \
153+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan test --parallel --recreate-databases --stop-on-failure; \
154+ echo " ✅ SUCCESS: Tests completed!" ; \
155+ else \
156+ echo " 🧪 TESTING: Running complete test suite..." ; \
157+ cd containers && docker-compose -f docker-compose.test.yml up -d; \
158+ echo " >> Installing dependencies in test container..." ; \
159+ sleep 10; \
160+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test composer install --no-interaction --prefer-dist --optimize-autoloader; \
161+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan key:generate --env=testing --force; \
162+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan migrate:fresh --seed --env=testing --force; \
163+ echo " >> Running tests..." ; \
164+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan test --parallel --recreate-databases --stop-on-failure; \
165+ echo " ✅ SUCCESS: Tests completed!" ; \
166+ fi
167+
160168
161169# Run tests with coverage report
162- test-coverage : docker-setup-env
163- @echo " 🧪 TESTING: Running tests with coverage..."
164- cd containers && docker-compose -f docker-compose.test.yml up -d
165- @sleep 10
166- docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test composer install --no-interaction --prefer-dist --optimize-autoloader
167- docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan key:generate --env=testing --force
168- docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan migrate:fresh --seed --env=testing --force
169- @echo " >> Running tests with coverage..."
170- docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan test --coverage --coverage-html reports/coverage --coverage-clover reports/coverage.xml --stop-on-failure --min=80
171- cd containers && docker-compose -f docker-compose.test.yml down
172- @echo " ✅ SUCCESS: Tests with coverage completed!"
170+ test-coverage :
171+ @if docker-compose -f containers/docker-compose.test.yml ps | grep -q ' laravel_blog_api_test' && docker-compose -f containers/docker-compose.test.yml ps | grep ' Up' ; then \
172+ echo " 🧪 TESTING: Test container already running. Skipping setup..." ; \
173+ echo " >> Running tests with coverage..." ; \
174+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan test --coverage --coverage-html reports/coverage --coverage-clover reports/coverage.xml --stop-on-failure --min=80; \
175+ echo " ✅ SUCCESS: Tests with coverage completed!" ; \
176+ else \
177+ echo " 🧪 TESTING: Running tests with coverage..." ; \
178+ cd containers && docker-compose -f docker-compose.test.yml up -d; \
179+ sleep 10; \
180+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test composer install --no-interaction --prefer-dist --optimize-autoloader; \
181+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan key:generate --env=testing --force; \
182+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan migrate:fresh --seed --env=testing --force; \
183+ echo " >> Running tests with coverage..." ; \
184+ docker-compose -f containers/docker-compose.test.yml exec -T laravel_blog_api_test php artisan test --coverage --coverage-html reports/coverage --coverage-clover reports/coverage.xml --stop-on-failure --min=80; \
185+ echo " ✅ SUCCESS: Tests with coverage completed!" ; \
186+ fi
173187
174188# =============================================================================
175189# Code Quality Tools
0 commit comments