Skip to content

Commit 293d12d

Browse files
committed
fix: fix test scripts to persist container
1 parent 7b86c3b commit 293d12d

File tree

1 file changed

+37
-23
lines changed

1 file changed

+37
-23
lines changed

Makefile

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)