| #!/bin/bash
|
|
|
|
|
|
|
|
|
| cd "$(dirname "$0")/../../../" || exit 1
|
|
|
|
|
| COVERAGE=false
|
| VERBOSE=false
|
| FILTER=""
|
| TEST_PATH="tests/integration/workflows/"
|
|
|
|
|
| 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
|
|
|
|
|
| PYTEST_CMD="pytest"
|
|
|
|
|
| if [ "$COVERAGE" = true ]; then
|
| PYTEST_CMD="$PYTEST_CMD --cov=backend --cov-report=term-missing --cov-report=html"
|
| fi
|
|
|
|
|
| if [ "$VERBOSE" = true ]; then
|
| PYTEST_CMD="$PYTEST_CMD -vv"
|
| else
|
| PYTEST_CMD="$PYTEST_CMD -v"
|
| fi
|
|
|
|
|
| if [ -n "$FILTER" ]; then
|
| PYTEST_CMD="$PYTEST_CMD $TEST_PATH$FILTER"
|
| else
|
| PYTEST_CMD="$PYTEST_CMD $TEST_PATH"
|
| fi
|
|
|
|
|
| PYTEST_CMD="$PYTEST_CMD --tb=short --maxfail=5"
|
|
|
|
|
| echo "Running: $PYTEST_CMD"
|
| echo ""
|
|
|
|
|
| eval "$PYTEST_CMD"
|
| EXIT_CODE=$?
|
|
|
|
|
| echo ""
|
| if [ $EXIT_CODE -eq 0 ]; then
|
| echo "✓ Integration tests passed"
|
| else
|
| echo "✗ Integration tests failed"
|
| fi
|
|
|
| exit $EXIT_CODE
|
|
|