Files
crawl4ai/Makefile.telemetry

136 lines
3.8 KiB
Makefile

# Makefile for Crawl4AI Telemetry Testing
# Usage: make test-telemetry, make test-unit, make test-integration, etc.
.PHONY: help test-all test-telemetry test-unit test-integration test-privacy test-performance test-slow test-coverage test-verbose clean
# Default Python executable
PYTHON := .venv/bin/python
PYTEST := $(PYTHON) -m pytest
help:
@echo "Crawl4AI Telemetry Testing Commands:"
@echo ""
@echo " test-all Run all telemetry tests"
@echo " test-telemetry Run all telemetry tests (same as test-all)"
@echo " test-unit Run unit tests only"
@echo " test-integration Run integration tests only"
@echo " test-privacy Run privacy compliance tests only"
@echo " test-performance Run performance tests only"
@echo " test-slow Run slow tests only"
@echo " test-coverage Run tests with coverage report"
@echo " test-verbose Run tests with verbose output"
@echo " test-specific TEST= Run specific test (e.g., make test-specific TEST=test_telemetry.py::TestTelemetryConfig)"
@echo " clean Clean test artifacts"
@echo ""
@echo "Environment Variables:"
@echo " CRAWL4AI_TELEMETRY_TEST_REAL=1 Enable real telemetry during tests"
@echo " PYTEST_ARGS Additional pytest arguments"
# Run all telemetry tests
test-all test-telemetry:
$(PYTEST) tests/telemetry/ -v
# Run unit tests only
test-unit:
$(PYTEST) tests/telemetry/ -m "unit" -v
# Run integration tests only
test-integration:
$(PYTEST) tests/telemetry/ -m "integration" -v
# Run privacy compliance tests only
test-privacy:
$(PYTEST) tests/telemetry/ -m "privacy" -v
# Run performance tests only
test-performance:
$(PYTEST) tests/telemetry/ -m "performance" -v
# Run slow tests only
test-slow:
$(PYTEST) tests/telemetry/ -m "slow" -v
# Run tests with coverage
test-coverage:
$(PYTEST) tests/telemetry/ --cov=crawl4ai.telemetry --cov-report=html --cov-report=term-missing -v
# Run tests with verbose output
test-verbose:
$(PYTEST) tests/telemetry/ -vvv --tb=long
# Run specific test
test-specific:
$(PYTEST) tests/telemetry/$(TEST) -v
# Run tests excluding slow ones
test-fast:
$(PYTEST) tests/telemetry/ -m "not slow" -v
# Run tests in parallel
test-parallel:
$(PYTEST) tests/telemetry/ -n auto -v
# Clean test artifacts
clean:
rm -rf .pytest_cache/
rm -rf htmlcov/
rm -rf .coverage
find tests/ -name "*.pyc" -delete
find tests/ -name "__pycache__" -type d -exec rm -rf {} +
rm -rf tests/telemetry/__pycache__/
# Lint test files
lint-tests:
$(PYTHON) -m flake8 tests/telemetry/
$(PYTHON) -m pylint tests/telemetry/
# Type check test files
typecheck-tests:
$(PYTHON) -m mypy tests/telemetry/
# Run all quality checks
check-tests: lint-tests typecheck-tests test-unit
# Install test dependencies
install-test-deps:
$(PYTHON) -m pip install pytest pytest-asyncio pytest-mock pytest-cov pytest-xdist
# Setup development environment for testing
setup-dev:
$(PYTHON) -m pip install -e .
$(MAKE) install-test-deps
# Generate test report
test-report:
$(PYTEST) tests/telemetry/ --html=test-report.html --self-contained-html -v
# Run performance benchmarks
benchmark:
$(PYTEST) tests/telemetry/test_privacy_performance.py::TestTelemetryPerformance -v --benchmark-only
# Test different environments
test-docker-env:
CRAWL4AI_DOCKER=true $(PYTEST) tests/telemetry/ -k "docker" -v
test-cli-env:
$(PYTEST) tests/telemetry/ -k "cli" -v
# Validate telemetry implementation
validate:
@echo "Running telemetry validation suite..."
$(MAKE) test-unit
$(MAKE) test-privacy
$(MAKE) test-performance
@echo "Validation complete!"
# Debug failing tests
debug:
$(PYTEST) tests/telemetry/ --pdb -x -v
# Show test markers
show-markers:
$(PYTEST) --markers
# Show test collection (dry run)
show-tests:
$(PYTEST) tests/telemetry/ --collect-only -q