Community edition generated from private repo via sync pipeline. Includes 9 plugins (WordPress, WooCommerce, WP Advanced, Gitea, n8n, Supabase, OpenPanel, Appwrite, Directus) with ~587 tools. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
116 lines
2.3 KiB
Markdown
116 lines
2.3 KiB
Markdown
# Testing Guide
|
|
|
|
## Integration Tests
|
|
|
|
### Quick Start
|
|
|
|
```bash
|
|
# In Docker container:
|
|
docker exec -it mcphub python tests/run_integration_tests.py
|
|
|
|
# Or local:
|
|
python tests/run_integration_tests.py
|
|
```
|
|
|
|
### What Gets Tested
|
|
|
|
1. **Module Imports** - All modules load correctly
|
|
2. **BasePlugin Architecture** - Plugin system compatibility
|
|
3. **WordPress Plugin** - Initialization and handlers
|
|
4. **Tool Specifications** - Format and completeness
|
|
5. **Handlers Structure** - All 14 handlers present
|
|
6. **Pydantic Schemas** - Validation working
|
|
7. **ToolGenerator Integration** - Dynamic tool generation ready
|
|
|
|
### Expected Output
|
|
|
|
```
|
|
Running Integration Tests for WordPress MCP Server
|
|
============================================================
|
|
|
|
Running: Imports... PASSED
|
|
Running: Base Plugin... PASSED
|
|
Running: WordPress Plugin Init... PASSED
|
|
Running: Tool Specifications... PASSED
|
|
Running: Handlers Structure... PASSED
|
|
Running: Pydantic Schemas... PASSED
|
|
Running: ToolGenerator Integration... PASSED
|
|
|
|
============================================================
|
|
Test Summary:
|
|
Total: 7
|
|
Passed: 7
|
|
Failed: 0
|
|
Skipped: 0
|
|
```
|
|
|
|
### Exit Codes
|
|
|
|
- `0` - All tests passed
|
|
- `1` - Some tests failed
|
|
|
|
### JSON Output
|
|
|
|
The script also outputs results as JSON for programmatic parsing:
|
|
|
|
```json
|
|
{
|
|
"timestamp": "2025-11-16T10:30:00",
|
|
"tests": [
|
|
{
|
|
"name": "imports",
|
|
"status": "passed",
|
|
"message": "All modules imported successfully",
|
|
"details": {}
|
|
}
|
|
],
|
|
"summary": {
|
|
"total": 7,
|
|
"passed": 7,
|
|
"failed": 0,
|
|
"skipped": 0
|
|
}
|
|
}
|
|
```
|
|
|
|
## Manual Testing with Real Sites
|
|
|
|
To test with real sites, use MCP Inspector or Claude Desktop:
|
|
|
|
```python
|
|
# Test health
|
|
wordpress_get_site_health(site="mysite")
|
|
|
|
# Test posts
|
|
wordpress_list_posts(site="mysite", per_page=5)
|
|
|
|
# Test products
|
|
wordpress_list_products(site="mysite", per_page=5)
|
|
|
|
# Test WP-CLI (requires container access)
|
|
wordpress_wp_cache_type(site="mysite")
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Import Errors
|
|
|
|
```
|
|
Error: ModuleNotFoundError: No module named 'plugins'
|
|
```
|
|
|
|
**Fix**: Run from project root:
|
|
```bash
|
|
cd /app # In Docker
|
|
python tests/run_integration_tests.py
|
|
```
|
|
|
|
### Handler Errors
|
|
|
|
```
|
|
Error: Can't instantiate abstract class WordPressPlugin
|
|
```
|
|
|
|
**Fix**: This means BasePlugin still has abstract get_tools().
|
|
This should be fixed in the latest version.
|