70 lines
2.0 KiB
Plaintext
70 lines
2.0 KiB
Plaintext
# Testing commands
|
|
# Usage: just testing::unit, just testing::integration, etc.
|
|
|
|
# Run unit tests only (excludes integration tests)
|
|
unit:
|
|
uv run pytest --ignore=tests/integration
|
|
|
|
# Run tests with coverage (excludes integration tests)
|
|
cov:
|
|
uv run pytest --ignore=tests/integration --cov=src/freecad_mcp --cov-report=term-missing --cov-report=html
|
|
|
|
# Run tests without slow markers (excludes integration tests)
|
|
fast:
|
|
uv run pytest --ignore=tests/integration -m "not slow"
|
|
|
|
# Run only integration tests (requires running FreeCAD MCP bridge)
|
|
integration:
|
|
uv run pytest tests/integration -v
|
|
|
|
# Run tests with verbose output (excludes integration tests)
|
|
verbose:
|
|
uv run pytest --ignore=tests/integration -v --tb=long
|
|
|
|
# Run all tests including integration (requires running FreeCAD MCP bridge)
|
|
all:
|
|
uv run pytest
|
|
|
|
# Run integration tests with automatic FreeCAD headless startup
|
|
integration-auto:
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
echo "Starting FreeCAD headless server for integration tests..."
|
|
echo ""
|
|
|
|
# Start FreeCAD headless in background
|
|
just freecad::run-headless &
|
|
FREECAD_PID=$!
|
|
|
|
# Give FreeCAD time to start the XML-RPC server
|
|
echo "Waiting for FreeCAD MCP bridge to start..."
|
|
sleep 5
|
|
|
|
# Check if the bridge is ready
|
|
MAX_RETRIES=30
|
|
RETRY_COUNT=0
|
|
while ! curl -s http://localhost:9875 > /dev/null 2>&1; do
|
|
RETRY_COUNT=$((RETRY_COUNT + 1))
|
|
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
|
|
echo "ERROR: FreeCAD MCP bridge did not start within timeout"
|
|
kill $FREECAD_PID 2>/dev/null || true
|
|
exit 1
|
|
fi
|
|
echo " Waiting... ($RETRY_COUNT/$MAX_RETRIES)"
|
|
sleep 1
|
|
done
|
|
|
|
echo "FreeCAD MCP bridge is ready!"
|
|
echo ""
|
|
|
|
# Run integration tests
|
|
TEST_EXIT_CODE=0
|
|
uv run pytest tests/integration -v || TEST_EXIT_CODE=$?
|
|
|
|
# Stop FreeCAD
|
|
echo ""
|
|
echo "Stopping FreeCAD..."
|
|
kill $FREECAD_PID 2>/dev/null || true
|
|
|
|
exit $TEST_EXIT_CODE
|