Tox Testing
Executa comandos tox para rodar testes Python com pytest. Requer que a variável de ambiente TOX_APP_DIR esteja definida.
Documentação
Servidor MCP Tox Testing
Um servidor MCP que executa comandos tox para rodar testes Python dentro de um projeto usando pytest. Este servidor fornece uma maneira conveniente de executar e gerenciar testes Python através do Model Context Protocol (MCP).
Recursos
Ferramentas
run_tox_tests- Executa testes tox com vários modos e opções- Suporta diferentes modos de execução:
all: Executa todos os testes ou testes de um grupo específicofile: Executa testes de um arquivo específicocase: Executa um caso de teste específicodirectory: Executa todos os testes em um diretório especificado
- Grupos de teste suportados:
clients: Testes relacionados ao clienteapi: Testes de endpoints de APIauth: Testes de autenticaçãouploads: Testes de funcionalidade de uploadroutes: Testes de manipuladores de rotas
- Suporta diferentes modos de execução:
Desenvolvimento
Instale as dependências:
npm install
Compile o servidor:
npm run build
Para desenvolvimento com recompilação automática:
npm run watch
Instalação
Para usar com VSCode, adicione a configuração do servidor ao seu arquivo de configurações MCP em:
~/.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"
}
}
}
}
Opções de Configuração
env.TOX_TIMEOUT: (Opcional) Tempo máximo em segundos para aguardar a conclusão da execução dos testes. Se uma execução de teste demorar mais que esse tempo limite, ela será encerrada. O padrão é 600 segundos (10 minutos)env.TOX_APP_DIR: (Obrigatório) Diretório que contém o arquivo tox.ini. É a partir daqui que os comandos tox serão executados. O caminho deve apontar para a raiz do seu projeto Python onde o tox.ini está localizado.
O tempo limite é particularmente importante para:
- Prevenir processos de teste travados
- Gerenciar testes de integração de longa duração
- Garantir que pipelines de CI/CD não fiquem presos
Uso
O servidor fornece uma única ferramenta run_tox_tests que pode ser usada em diferentes modos:
Argumentos da Ferramenta
// 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/"
}
Usando com Cline
Ao usar este MCP com Cline, você pode configurar as Instruções Personalizadas do Cline para lidar com a execução de testes de forma eficiente. Aqui está um fluxo de trabalho 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 fluxo de trabalho garante:
- Cobertura abrangente de testes executando todos os testes primeiro
- Depuração focada isolando casos de teste com falha
- Verificação de correções testando novamente casos individuais
- Validação final executando todos os testes novamente
Exemplos de interações com 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"
}
Contribuindo
Consulte CONTRIBUTING.md para detalhes sobre nosso código de conduta e o processo para enviar pull requests.