annator-command-center / tests /integration /scripts /run_integration_tests.sh
techprotrade's picture
Deploy ATOM FastAPI command center runtime (part 8)
aef804e verified
Raw
History Blame Contribute Delete
2.42 kB
#!/bin/bash
# Integration Test Runner Script
# Runs integration tests with optional coverage and filtering
# Change to backend directory
cd "$(dirname "$0")/../../../" || exit 1
# Default values
COVERAGE=false
VERBOSE=false
FILTER=""
TEST_PATH="tests/integration/workflows/"
# Parse command line arguments
while [[ $# -gt 0 ]]; do
case $1 in
--coverage)
COVERAGE=true
shift
;;
--verbose)
VERBOSE=true
shift
;;
--filter=*)
FILTER="${1#*=}"
shift
;;
--filter)
FILTER="$2"
shift 2
;;
--help)
echo "Usage: $0 [OPTIONS]"
echo ""
echo "Options:"
echo " --coverage Enable coverage reporting"
echo " --verbose Verbose output (-vv)"
echo " --filter=NAME Run specific test file or pattern"
echo " --help Show this help message"
echo ""
echo "Examples:"
echo " $0 # Run all integration tests"
echo " $0 --coverage # Run with coverage"
echo " $0 --filter=test_workflow_engine_e2e # Run specific test"
exit 0
;;
*)
echo "Unknown option: $1"
echo "Use --help for usage information"
exit 1
;;
esac
done
# Build pytest command
PYTEST_CMD="pytest"
# Add coverage if requested
if [ "$COVERAGE" = true ]; then
PYTEST_CMD="$PYTEST_CMD --cov=backend --cov-report=term-missing --cov-report=html"
fi
# Add verbose flag if requested
if [ "$VERBOSE" = true ]; then
PYTEST_CMD="$PYTEST_CMD -vv"
else
PYTEST_CMD="$PYTEST_CMD -v"
fi
# Add test path
if [ -n "$FILTER" ]; then
PYTEST_CMD="$PYTEST_CMD $TEST_PATH$FILTER"
else
PYTEST_CMD="$PYTEST_CMD $TEST_PATH"
fi
# Add pytest options
PYTEST_CMD="$PYTEST_CMD --tb=short --maxfail=5"
# Print command
echo "Running: $PYTEST_CMD"
echo ""
# Run pytest and capture exit code
eval "$PYTEST_CMD"
EXIT_CODE=$?
# Print summary
echo ""
if [ $EXIT_CODE -eq 0 ]; then
echo "✓ Integration tests passed"
else
echo "✗ Integration tests failed"
fi
exit $EXIT_CODE