167 lines
4.1 KiB
Markdown
167 lines
4.1 KiB
Markdown
---
|
|
description: Run integration test suites with proper setup and teardown
|
|
shortcut: rit
|
|
---
|
|
|
|
# Integration Test Runner
|
|
|
|
Run integration tests with comprehensive environment setup, database seeding, service orchestration, and cleanup.
|
|
|
|
## Purpose
|
|
|
|
Execute integration tests that verify interactions between multiple system components:
|
|
- API endpoints with database operations
|
|
- Microservices communication
|
|
- Third-party service integrations
|
|
- Full request/response workflows
|
|
- Database transactions and state changes
|
|
|
|
## Pre-Test Setup
|
|
|
|
Before running integration tests, ensure:
|
|
|
|
1. **Environment Configuration**
|
|
- Check for test environment variables
|
|
- Verify test database connections
|
|
- Confirm test API keys/credentials
|
|
- Validate service dependencies are available
|
|
|
|
2. **Database Preparation**
|
|
- Create/reset test database
|
|
- Run migrations
|
|
- Seed test data
|
|
- Clear any existing test data
|
|
|
|
3. **Service Dependencies**
|
|
- Start required services (Redis, message queues, etc.)
|
|
- Check service health endpoints
|
|
- Initialize mock services if needed
|
|
- Set up test containers (Docker/Testcontainers)
|
|
|
|
4. **State Management**
|
|
- Clear caches
|
|
- Reset file system test directories
|
|
- Initialize test state
|
|
|
|
## Test Execution
|
|
|
|
Run integration tests with:
|
|
|
|
```bash
|
|
# Run all integration tests
|
|
/run-integration
|
|
|
|
# Run specific test suite
|
|
/run-integration api
|
|
|
|
# Run with specific environment
|
|
/run-integration --env staging
|
|
|
|
# Run with coverage
|
|
/run-integration --coverage
|
|
```
|
|
|
|
## Execution Process
|
|
|
|
1. **Pre-flight checks**
|
|
- Validate environment configuration
|
|
- Check database connectivity
|
|
- Verify service availability
|
|
- Confirm no conflicting processes
|
|
|
|
2. **Setup phase**
|
|
- Initialize test database
|
|
- Seed required data
|
|
- Start dependent services
|
|
- Configure test environment
|
|
|
|
3. **Run tests**
|
|
- Execute test suites in order
|
|
- Capture detailed logs
|
|
- Report progress
|
|
- Handle test failures gracefully
|
|
|
|
4. **Teardown phase**
|
|
- Clean up test data
|
|
- Stop test services
|
|
- Reset environment
|
|
- Generate test reports
|
|
|
|
## Test Organization
|
|
|
|
Structure integration tests by:
|
|
- **API routes** - Endpoint-specific tests
|
|
- **User workflows** - End-to-end user journeys
|
|
- **Service interactions** - Cross-service communication
|
|
- **Data flows** - Multi-step data processing
|
|
|
|
## Reporting
|
|
|
|
Generate comprehensive reports with:
|
|
- Test results (pass/fail counts)
|
|
- Execution time per test
|
|
- Failed test details with stack traces
|
|
- Code coverage (if enabled)
|
|
- Service logs for failures
|
|
- Database state at failure points
|
|
|
|
## Cleanup
|
|
|
|
After tests complete:
|
|
- Drop test database or truncate tables
|
|
- Stop test containers/services
|
|
- Remove temporary files
|
|
- Clear test caches
|
|
- Reset environment variables
|
|
|
|
## Best Practices Applied
|
|
|
|
- **Isolation** - Tests don't depend on each other
|
|
- **Idempotency** - Tests can run multiple times safely
|
|
- **Fast feedback** - Fail fast on setup errors
|
|
- **Clear reporting** - Easy to identify failures
|
|
- **Proper cleanup** - No test pollution
|
|
- **Realistic data** - Test data resembles production
|
|
|
|
## Example Output
|
|
|
|
```
|
|
Integration Test Runner
|
|
=======================
|
|
|
|
Setup Phase:
|
|
Database connection verified
|
|
Test database created and migrated
|
|
Test data seeded (50 users, 200 products)
|
|
Redis cache cleared
|
|
Services healthy: api, worker, notifications
|
|
|
|
Running Tests:
|
|
API Authentication Tests (5/5 passed) - 2.3s
|
|
User Management Tests (12/12 passed) - 5.1s
|
|
Order Processing Tests (8/8 passed) - 8.7s
|
|
Payment Integration Tests (3/4 passed) - 4.2s
|
|
└─ test_refund_webhook_handling FAILED
|
|
Notification Tests (6/6 passed) - 3.1s
|
|
|
|
Results: 34/35 tests passed (97.1%)
|
|
Total time: 23.4s
|
|
Coverage: 78.3%
|
|
|
|
Teardown Phase:
|
|
Test database dropped
|
|
Services stopped
|
|
Temp files removed
|
|
|
|
Report saved to: test-results/integration-2025-10-11-14-30.json
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
Common issues:
|
|
- **Connection refused** - Check service is running
|
|
- **Database errors** - Verify migrations are current
|
|
- **Timeout errors** - Increase test timeouts
|
|
- **Port conflicts** - Ensure test ports are available
|
|
- **Permission errors** - Check file/database permissions
|