4.6 KiB
4.6 KiB
Windsurf Testing Integration Guide
This guide explains how to use Windsurf's integrated testing features with the AITBC project.
✅ What's Been Configured
1. VS Code Settings (.vscode/settings.json)
- ✅ Pytest enabled (unittest disabled)
- ✅ Test discovery configured
- ✅ Auto-discovery on save enabled
- ✅ Debug port configured
2. Debug Configuration (.vscode/launch.json)
- ✅ Debug Python Tests
- ✅ Debug All Tests
- ✅ Debug Current Test File
- ✅ Uses
debugpy(not deprecatedpython)
3. Task Configuration (.vscode/tasks.json)
- ✅ Run All Tests
- ✅ Run Tests with Coverage
- ✅ Run Unit Tests Only
- ✅ Run Integration Tests
- ✅ Run Current Test File
- ✅ Run Test Suite Script
4. Pytest Configuration
- ✅
pyproject.toml- Main configuration with markers - ✅
tests/pytest.ini- Simplified for discovery - ✅
tests/conftest.py- Fixtures with fallback mocks
🚀 How to Use
Test Discovery
- Open Windsurf
- Click the Testing panel (beaker icon in sidebar)
- Tests will be automatically discovered
- See all
test_*.pyfiles listed
Running Tests
Option 1: Testing Panel
- Click the play button next to any test
- Click the play button at the top to run all tests
- Right-click on a test folder for more options
Option 2: Command Palette
Ctrl+Shift+P(orCmd+Shift+Pon Mac)- Search for "Python: Run All Tests"
- Or search for "Python: Run Test File"
Option 3: Tasks
Ctrl+Shift+P→ "Tasks: Run Test Task"- Select the desired test task
Option 4: Keyboard Shortcuts
F5- Debug current testCtrl+F5- Run without debugging
Debugging Tests
- Click the debug button next to any test
- Set breakpoints in your test code
- Press
F5to start debugging - Use the debug panel to inspect variables
Test Coverage
- Run the "Run Tests with Coverage" task
- Open
htmlcov/index.htmlin your browser - See detailed coverage reports
📁 Test Structure
tests/
├── test_basic_integration.py # Basic integration tests
├── test_discovery.py # Simple discovery tests
├── test_windsurf_integration.py # Windsurf integration tests
├── unit/ # Unit tests
│ ├── test_coordinator_api.py
│ ├── test_wallet_daemon.py
│ └── test_blockchain_node.py
├── integration/ # Integration tests
│ └── test_full_workflow.py
├── e2e/ # End-to-end tests
│ └── test_user_scenarios.py
└── security/ # Security tests
└── test_security_comprehensive.py
🏷️ Test Markers
Tests are marked with:
@pytest.mark.unit- Unit tests@pytest.mark.integration- Integration tests@pytest.mark.e2e- End-to-end tests@pytest.mark.security- Security tests@pytest.mark.performance- Performance tests
🔧 Troubleshooting
Tests Not Discovered?
- Check that files start with
test_*.py - Verify pytest is enabled in settings
- Run
python -m pytest --collect-onlyto debug
Import Errors?
- The fixtures include fallback mocks
- Check
tests/conftest.pyfor path configuration - Use the mock clients if full imports fail
Debug Not Working?
- Ensure
debugpyis installed - Check
.vscode/launch.jsonusestype: debugpy - Verify test has a debug configuration
📝 Example Test
import pytest
from unittest.mock import patch
@pytest.mark.unit
def test_example_function():
"""Example unit test"""
result = add(2, 3)
assert result == 5
@pytest.mark.integration
def test_api_endpoint(coordinator_client):
"""Example integration test using fixture"""
response = coordinator_client.get("/docs")
assert response.status_code == 200
🎯 Best Practices
- Use descriptive test names -
test_specific_behavior - Add appropriate markers -
@pytest.mark.unit - Use fixtures - Don't repeat setup code
- Mock external dependencies - Keep tests isolated
- Test edge cases - Not just happy paths
- Keep tests fast - Unit tests should be < 1 second
📊 Running Specific Tests
# Run all unit tests
pytest -m unit
# Run specific file
pytest tests/unit/test_coordinator_api.py
# Run with coverage
pytest --cov=apps tests/
# Run in parallel
pytest -n auto tests/
🎉 Success!
Your Windsurf testing integration is now fully configured! You can:
- Discover tests automatically
- Run tests with a click
- Debug tests visually
- Generate coverage reports
- Use all pytest features
Happy testing! 🚀