Tox Testing
Ejecuta comandos tox para ejecutar pruebas de Python con pytest. Requiere que la variable de entorno TOX_APP_DIR esté configurada.
Documentación
Servidor MCP de Tox Testing
Un servidor MCP que ejecuta comandos tox para correr pruebas de Python dentro de un proyecto usando pytest. Este servidor proporciona una forma conveniente de ejecutar y gestionar pruebas de Python a través del Protocolo de Contexto de Modelo (MCP).
Características
Herramientas
run_tox_tests- Ejecuta pruebas tox con varios modos y opciones- Soporta diferentes modos de ejecución:
all: Ejecuta todas las pruebas o pruebas de un grupo específicofile: Ejecuta pruebas de un archivo específicocase: Ejecuta un caso de prueba específicodirectory: Ejecuta todas las pruebas en un directorio especificado
- Grupos de prueba soportados:
clients: Pruebas relacionadas con el clienteapi: Pruebas de endpoints de APIauth: Pruebas de autenticaciónuploads: Pruebas de funcionalidad de cargaroutes: Pruebas de manejadores de rutas
- Soporta diferentes modos de ejecución:
Desarrollo
Instalar dependencias:
npm install
Compilar el servidor:
npm run build
Para desarrollo con reconstrucción automática:
npm run watch
Instalación
Para usar con VSCode, agrega la configuración del servidor a tu archivo de configuración de MCP en:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
{
"mcpServers": {
"tox-testing": {
"command": "node",
"args": ["/path/to/tox-testing/build/index.js"],
"env": {
"TOX_APP_DIR": "/path/to/your/python/project",
"TOX_TIMEOUT": "600"
}
}
}
}
Opciones de Configuración
env.TOX_TIMEOUT: (Opcional) Tiempo máximo en segundos para esperar a que la ejecución de pruebas se complete. Si una ejecución de pruebas tarda más que este tiempo de espera, será terminada. El valor predeterminado es 600 segundos (10 minutos)env.TOX_APP_DIR: (Requerido) Directorio que contiene el archivo tox.ini. Aquí es donde se ejecutarán los comandos tox. La ruta debe apuntar a la raíz de tu proyecto de Python donde se encuentra tox.ini.
El tiempo de espera es particularmente importante para:
- Prevenir procesos de prueba colgados
- Gestionar pruebas de integración de larga duración
- Asegurar que los pipelines de CI/CD no se queden atascados
Uso
El servidor proporciona una única herramienta run_tox_tests que se puede usar en diferentes modos:
Argumentos de la Herramienta
// Run all tests
{
"mode": "all"
}
// Run tests from a specific group
{
"mode": "all",
"group": "api"
}
// Run tests from a specific file
{
"mode": "file",
"testFile": "tests/test_api.py"
}
// Run a specific test case
{
"mode": "case",
"testFile": "tests/test_api.py",
"testCase": "test_endpoint_response"
}
// Run tests from a specific directory
{
"mode": "directory",
"directory": "tests/api/"
}
Uso con Cline
Cuando uses este MCP con Cline, puedes configurar las Instrucciones Personalizadas de Cline para manejar la ejecución de pruebas de manera eficiente. Aquí hay un flujo de trabajo recomendado:
If asked to run tests on the project, use the tox-testing MCP. Follow these steps:
1. Run all tests across the project unless you are given instructions to run a specific test file or test case.
2. Review and rerun each failed test case individually as you troubleshoot and fix the issue from its output.
3. Repeat step 2 until the testcase passes.
4. Once all failed test cases from step 1 are passing rerun all tests again and repeat all steps until all tests pass.
Este flujo de trabajo asegura:
- Cobertura integral de pruebas ejecutando todas las pruebas primero
- Depuración enfocada aislando casos de prueba fallidos
- Verificación de correcciones volviendo a probar casos individuales
- Validación final ejecutando todas las pruebas nuevamente
Ejemplos de interacciones con Cline:
You: Run the tests for this project
Cline: I'll use the tox-testing MCP to run all tests:
{
"mode": "all"
}
You: Fix the failing test in test_api.py
Cline: I'll first run the specific test file:
{
"mode": "file",
"testFile": "tests/test_api.py"
}
Then address each failing test case individually:
{
"mode": "case",
"testFile": "tests/test_api.py",
"testCase": "test_endpoint_response"
}
Contribuciones
Consulta CONTRIBUTING.md para obtener detalles sobre nuestro código de conducta y el proceso para enviar solicitudes de extracción.