Files
mcphub/scripts/test.sh
airano cf62e65c55 Initial commit: MCP Hub Community Edition v3.0.0
Community edition generated from private repo via sync pipeline.
Includes 9 plugins (WordPress, WooCommerce, WP Advanced, Gitea, n8n,
Supabase, OpenPanel, Appwrite, Directus) with ~587 tools.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 08:34:44 +03:30

95 lines
2.7 KiB
Bash

#!/bin/bash
# ============================================
# MCP Hub - Test Runner Script
# ============================================
set -e
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${BLUE}════════════════════════════════════${NC}"
echo -e "${BLUE} MCP Hub - Test Runner${NC}"
echo -e "${BLUE}════════════════════════════════════${NC}"
echo ""
# Check if virtual environment is activated
if [ -z "$VIRTUAL_ENV" ]; then
echo -e "${YELLOW}⚠ Virtual environment not activated${NC}"
echo "Activating..."
source venv/bin/activate
fi
# Parse arguments
TEST_TYPE=${1:-all}
COVERAGE=${2:-yes}
case "$TEST_TYPE" in
unit)
echo -e "${BLUE}Running unit tests...${NC}"
if [ "$COVERAGE" = "yes" ]; then
pytest tests/test_*.py --cov=src --cov-report=term-missing --cov-report=html -v
else
pytest tests/test_*.py -v
fi
;;
integration)
echo -e "${BLUE}Running integration tests...${NC}"
if [ "$COVERAGE" = "yes" ]; then
pytest tests/integration/ --cov=src --cov-report=term-missing -v
else
pytest tests/integration/ -v
fi
;;
security)
echo -e "${BLUE}Running security tests...${NC}"
pytest tests/test_security.py -v
;;
quick)
echo -e "${BLUE}Running quick tests (no coverage)...${NC}"
pytest -x --ff
;;
all)
echo -e "${BLUE}Running all tests with coverage...${NC}"
pytest --cov=src --cov-report=term-missing --cov-report=html -v
;;
*)
echo -e "${YELLOW}Unknown test type: $TEST_TYPE${NC}"
echo ""
echo "Usage: ./scripts/test.sh [TYPE] [COVERAGE]"
echo ""
echo "Types:"
echo " all - Run all tests (default)"
echo " unit - Run only unit tests"
echo " integration - Run only integration tests"
echo " security - Run only security tests"
echo " quick - Quick test run (exit on first failure)"
echo ""
echo "Coverage (optional):"
echo " yes - Generate coverage report (default)"
echo " no - Skip coverage"
echo ""
echo "Examples:"
echo " ./scripts/test.sh"
echo " ./scripts/test.sh unit"
echo " ./scripts/test.sh all no"
echo " ./scripts/test.sh quick"
exit 1
;;
esac
echo ""
if [ "$COVERAGE" = "yes" ]; then
echo -e "${GREEN}✓ Coverage report saved to: htmlcov/index.html${NC}"
fi
echo -e "${GREEN}✓ Tests completed${NC}"