Files
uroma 699087342f Add comprehensive Docker test environment for installation validation
Add complete Docker testing infrastructure to validate all 3 installation methods

Features:
- Dockerfile: Ubuntu 22.04 with Node.js 20, Python 3, prerequisites
- docker-compose.yml: Orchestrate 3 test containers + verification
- Test suite with 5 scripts:
  * common.sh: Shared utilities and verification functions
  * test-interactive-install.sh: Test Option 2 (interactive installer)
  * test-master-prompt-install.sh: Test Option 1 (master prompt)
  * test-manual-install.sh: Test Option 3 (manual installation)
  * verify-all-installations.sh: Master verification with report generation
- run-tests.sh: Quick start script for easy test execution

What Gets Tested:
✓ Prerequisites (Node.js, npm, Python, Git, jq)
✓ Claude Code installation and version
✓ Settings files (settings.json, settings.local.json)
✓ 38 agents across 8 departments
✓ MCP tools (@z_ai/mcp-server, @z_ai/coding-helper, llm-tldr)
✓ UI/UX Pro Max skill
✓ Ralph CLI (optional, can be enabled)

Test Results:
- Saved to docker/test-env/test-results/
- Detailed logs for each test method
- Component verification counts
- Comprehensive final report with pass/fail status

Usage:
cd docker/test-env
./run-tests.sh

Or manually:
docker-compose up verify-all

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 10:30:54 +00:00

212 lines
5.0 KiB
Markdown

# Claude Code Suite - Docker Test Environment
This Docker environment tests all three installation methods for the Claude Code Suite to ensure error-free, fully working outcomes.
## 🚀 Quick Start
```bash
# Build the test environment
cd docker/test-env
docker-compose build
# Run all tests
docker-compose up
# View results
docker-compose run verify-all
cat test-results/final-report-*.txt
```
## 📋 What Gets Tested
### Three Installation Methods:
1. **Option 1: Master Prompt Installation**
- Copies MASTER-PROMPT.md instructions
- Executes each step automatically
- Verifies all components installed
2. **Option 2: Interactive Installer**
- Runs `interactive-install-claude.sh`
- Uses expect script to automate responses
- Tests all installation options
3. **Option 3: Manual Installation**
- Executes each step manually
- Tests individual commands
- Verifies each component separately
### Components Verified:
-**Prerequisites** - Node.js, npm, Python, Git, jq
-**Claude Code** - Installation and version
-**Settings Files** - settings.json, settings.local.json
-**Agents** - 38 agents across 8 departments
-**MCP Tools** - @z_ai/mcp-server, @z_ai/coding-helper, llm-tldr
-**UI/UX Pro Max** - Skill installation
-**Ralph CLI** (Optional) - Hook script and configuration
## 📁 Test Suite Structure
```
docker/test-env/
├── Dockerfile # Base Docker image
├── docker-compose.yml # Orchestration of test containers
├── README.md # This file
└── test-suite/
├── common.sh # Shared utilities and verification functions
├── test-interactive-install.sh # Test Option 2
├── test-master-prompt-install.sh # Test Option 1
├── test-manual-install.sh # Test Option 3
└── verify-all-installations.sh # Master verification script
```
## 🔧 Running Individual Tests
### Test Interactive Installer Only:
```bash
docker-compose run --rm test-interactive
```
### Test Master Prompt Only:
```bash
docker-compose run --rm test-master-prompt
```
### Test Manual Installation Only:
```bash
docker-compose run --rm test-manual
```
### Run All Tests:
```bash
docker-compose up verify-all
```
## 📊 Test Results
Results are saved to `docker/test-env/test-results/`:
- `test-YYYYMMDD-HHMMSS.log` - Detailed test logs
- `interactive-install-results.txt` - Interactive installer results
- `master-prompt-install-results.txt` - Master prompt results
- `manual-install-results.txt` - Manual installation results
- `test-counts.txt` - Component verification counts
- `final-report-YYYYMMDD-HHMMSS.txt` - Comprehensive final report
## 🎯 Test Verification Matrix
Each test verifies the following components:
| Component | Interactive | Master Prompt | Manual |
|-----------|-------------|--------------|--------|
| Prerequisites | ✅ | ✅ | ✅ |
| Claude Code | ✅ | ✅ | ✅ |
| Settings Files | ✅ | ✅ | ✅ |
| Agents (38) | ✅ | ✅ | ✅ |
| MCP Tools | ✅ | ✅ | ✅ |
| UI/UX Skill | ✅ | ✅ | ✅ |
| Ralph CLI | ⚠️ (skipped) | ⚠️ (skipped) | ⚠️ (skipped) |
⚠️ = Optional/Skipped to keep tests simple
## 🐛 Troubleshooting
### Container fails to build:
```bash
# Check build logs
docker-compose build --no-cache
# Verify Docker is running
docker ps
```
### Tests fail with network errors:
```bash
# Check network connectivity
docker-compose run test-interactive ping -c 3 github.com
# Check DNS
docker-compose run test-interactive cat /etc/resolv.conf
```
### Permission errors:
```bash
# Fix script permissions
chmod +x docker/test-env/test-suite/*.sh
# Rebuild
docker-compose build --no-cache
```
## 🔄 Clean Up
```bash
# Stop all containers
docker-compose down
# Remove test results
rm -rf docker/test-env/test-results/
# Remove built images
docker-compose down --rmi all
```
## 📝 Customization
### Modify test timeout:
Edit `docker-compose.yml` and add:
```yaml
environment:
- TEST_TIMEOUT=600
```
### Test with Ralph CLI:
Set environment variable:
```bash
export TEST_RALPH=true
docker-compose run test-interactive
```
### Use different Node.js version:
Edit `Dockerfile` and change:
```dockerfile
ENV NODE_VERSION=18 # or 20, or latest
```
## ✅ Success Criteria
A successful test run should show:
```
✅ All installation methods tested successfully
Total Installation Methods Tested: 3
Passed: 3
Failed: 0
✅ ALL INSTALLATION METHODS TESTED SUCCESSFULLY
Recommendation: All installation methods are PRODUCTION READY
```
## 📞 Support
If tests fail:
1. Check individual test logs in `test-results/`
2. Review error messages in the final report
3. Verify network connectivity to GitHub
4. Ensure Docker has sufficient resources (memory, disk)
## 🎉 Summary
This Docker test environment provides comprehensive validation of all three installation methods in isolated, reproducible containers. Each test runs from a clean slate and verifies all components are properly installed and functional.