| name | managing-test-environments |
| description | Test provision and manage isolated test environments with configuration and data.
Use when performing specialized testing.
Trigger with phrases like "manage test environment", "provision test env", or "setup test infrastructure".
|
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash(test:env-*) |
| version | 1.25.0 |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| license | MIT |
| tags | ["testing","test-environments"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Test Environment Manager
Overview
Provision, configure, and manage isolated test environments for reliable test execution. Supports Docker Compose environments, Testcontainers, local service stacks, and ephemeral CI environments.
Prerequisites
- Docker and Docker Compose installed (for containerized environments)
- Testcontainers library installed if using programmatic container management
- Database client tools (psql, mysql, mongosh) for seed data operations
- Environment variable management via
.env files or secrets manager
- Sufficient disk space and memory for running service containers
Instructions
- Read the project's existing configuration files (
docker-compose.yml, .env.test, jest.config.*, pytest.ini) to understand current environment setup.
- Inventory all external dependencies the test suite requires (databases, message queues, cache servers, third-party API stubs).
- Create or update a
docker-compose.test.yml defining isolated service containers:
- Assign non-conflicting ports to avoid collisions with development services.
- Configure health checks for each service to prevent tests from starting before services are ready.
- Set resource limits (memory, CPU) to match CI runner constraints.
- Write seed data scripts that populate databases with baseline test data:
- Use idempotent migrations that can run repeatedly without error.
- Create separate seed datasets for unit, integration, and E2E test tiers.
- Include cleanup scripts that truncate tables without dropping schemas.
- Generate environment configuration files (
.env.test) with connection strings, API keys, and feature flags appropriate for testing.
- Create a startup script that orchestrates the full environment lifecycle:
- Start containers and wait for health checks to pass.
- Run database migrations and seed data.
- Export environment variables for the test runner.
- Execute the test suite.
- Tear down containers and clean up volumes.
- Validate the environment by running a small smoke test suite against the provisioned services.
Output
docker-compose.test.yml with all required service definitions
.env.test with test-specific configuration values
- Database seed scripts ( or equivalent)