TestTrout
Need code spans preserved.
For pipeline rows, we can have distinct widths. That's okay. We preserve exact number columns.
For tables, no translation of "rdmatrix". Let's make each first cell code holes.
Let's compose final.
Need ensure no accidental " " in "``" etc.
Let's craft all sections.
Potential issue "X PREVIEW" "GXP7" etc exactly? Keep.
Let's now write final answer.
TestTrout
El asistente de pruebas para aplicaciones creadas con IA.
Ejecútala como aplicación o pásasela a tu agente de código mediante MCP. O una u otra forma, escribe las pruebas que tu aplicación (una, nunca tuvo y te avisa cuando se rompen.
Las truchas son una especie indicadora. Solo viven en agua limpia y bien oxigenizada — si encuentras una en un río, sabes que el agua está sana sin tener que analizarla.
Eso es un buen suite de pruebas: no una carga de trabajo, sino una señal que puedes interpretar de un preso.
El problema
Los agentes de código publican rápido. También rompen cosas en silencio, que las aplicaciones que crean — Lovable, v0, Bolt, React hechos a mano en Vercel — casi no tienen pruebas. Así que el ciclo término a término con un “me parece bien” de la misma máquina que acaba de escribir el código.
TestTrout cierra este ciclo. Lee el repositorio, se conecta al despliegue en marcha, determina qué está por probar y en qué orden importa, escribe pruebas verdaderas, la ejecuta y entrega resultados sobre los que de los que realmente puedes actuar.
Related MCP server: Lastest
Ponerlo en marcha
pip install testtrout
trout upEso lo arranca todo: almacenamiento, un trabajador en guiones de fondo y la interfaz en
localhost:7411. Sin Docker, sin daemon, sin base de datos a instalar — el almacenamiento es SQLite
bajo ~/.testtrout y el trabajador se ejecuta dentro del mismo proceso.
Conecta repositorio, desde la interfaz o desde la terminal:
trout link ~/code/my-app # a folder you already have
trout link --github owner/name # cloned with your GitHub tokenVincular una carpeta local nunca la modifica. El escaneo comienza automáticamente y la pestaña Configuration tiene todos los ajustes: despliegues, Supabase, cuentas de prueba, proveedores de modelos.
Dos cosas que lo hacen seguro y no útil:
Te dice las credenciales que tu aplicación, descubiertas al leer tu código fuente — las variables que busca, para qué sirve probablemente cada una y la línea en la que aparecen. No reduce a la reutilización de lo que ya dice el código.
Un conjunto parcial produce una suite parcial. Con una sola URL puedes sonar analizar y ejecutar pruebas de API; añade una clave anonymous y una second account, y las pruebas de autorización vuelven a ser posibles. Cada capacidad bloqueada nombra la única el siguiente cosa que necesita, nunca “déjalo configurado bien”.
Los valores secretos se escriben en un .env ignorado por git; la configuración del commit solo
contiene referencias env:NAME, y un secreto literal en campo de configuración se rechaza.
O quédate en tu agente de código
La aplicación es una forma de entrar, no la única. Todo lo que hace también está como tools de MCP y como commands del CLI, para el que no quiere dejar su editor no tenga por qué:
pip install 'testtrout[mcp]'
trout mcp /path/to/your/projectApunta tu agente a la skill en .claude/skills/, o díle:
Usa el servidor MCP de TestTrout. Escanea el repositorio, muéstrame lo que está sin probar editoritos por importancia, redacta las pruebas de los cinco primeros y ejecuta.
Trece herramientas, vinculadas a un único proyecto para que un agente no no pueda trabajar sobre el repositorio incorrecto:
| entiende la base de código. Sin clave API, sin red. |
| Vea lo que hace la aplicación desplegada, en un navegador real. |
| Clasifica what’s été untested and por él’ you. |
| Redacta, reseña, compila en archivos de prueba reales. |
| Ejecuta, demuestra recurso, evidencia. |
| Qué falta y cómo resolverlo. |
Además, trout://surfaces, trout://intent, trout://config y trout://scenarioscomo recursos,
de manera que el volumen nunca acaba desguazando la ventana del contexto del agente.
Qué entiende
trout scan es totalmente determinista — no requiere modelo, ni red, y es seguro sin un
repo que acabes de clonar. En una aplicación típica de Supabase encuentra:
Superficie | Ejemplo |
Pantallas |
|
Operaciones de datos |
|
Políticas RLS |
|
Acciones de servidor | Funciones |
Manejadores de ruta |
|
Terceros | Stripe, Resend — el límite de sustitución |
Esquema | Tablas, columnas, claves foráneas, estado RLS |
También te dice cuando se escribe una tabla desde el código del navegador con sin row-level security — es decir, que se puede escribir en el mundo entero a través de la clave anónima. Eso normalmente es una novación.
Por qué las pruebas son dignas
Construye una línea base, no conjeturas por pull request. Una prueba derivada del código de que acabas de cambiar afirma que el nuevo comportamiento es correcto por construcción: no podrá detectar un regresión. TestTrout primero urifica una suite contra un despliegue funcionante, so un fallo significa algo.
Núcleo determinista, modelo solo en los bordes. El escaneo, la clasificación, la execution y la clasificación de fallos nunca intervienen una modelo. El modelo solo interpreta tu intención, ajusta la redacción y elige qué elementos observados se usan para afirmar. Cada clasificación es la suma de contribuciones con nombre:
critical authorization A user cannot read another user's rows in payments 100
· critical surface
· policy: exists (select 1 from orders o where o.id = payments.order_id …)Cada aserción lleva clara su procedencia. derived de una política, observed en un navegador real,
o inferred por un modelo — y lo inferred nunca puede bloquear algo por sí solo.
Un fallo se clasifica antes de avisarse. Solo assertion_failure es una señal de producto. Los fallos de auth, las
bases de datos inaccesibles y las llamadas de terceros bloqueadas son propensos del harness, y una
ejecución no concluyente nunca se asciende paso.
Todo desde la terminal
trout scan # understand the code
trout init # connect a deployment
trout gaps # what's missing, ranked, with reasons
trout run # execute, with evidence behind every resultTodos los comandos soportan --json. Recorrido completo en docs/setup.md.
Cómo lo guarda
Tu suite de pruebas permanece en el repositorio, confirmada y revisable:
.trout/scenarios/*.yaml what each test asserts, in plain language
.trout/config.yaml deployments and env: references, never secrets
tests/trout/ generated Playwright and Vitest filesEl historial de pruebas, la evolución de la cobertura y la cola de trabajo están en SQLite, en
~/.testtrout. Esta separación es intencional: la suite debe estar junto al código, donde una pull
request puede revisarla, y las preguntas que los archivos no pueden responder — se está volviendo
más inestable si la cobertura sube — están en una base de datos.
Vista web opcional
trout webCobertura a un vistazo, lista de huecos clasificada, revisión de escenarios, historial de ejecuciones
con evidencia, log en directo. Los mismos archivos .trout/ que en el CLI — sin base de datos, nada
alojado, solo loopback. Directamente opcional; la CLI y MCP se completa.
Seguridad
La herramienta necesita las credenciales de tu base de datos y tener conductor sobre despliegue, por eso garantías quedan codificadas, no podrán documentadas:
La producción es de lectura por defecto. Las transferencias de mutation se bloquean a nivel de red en menos que no punto de entrada esté marcado explicitally
disposable. T' guard se coloca bajo la navegación, porque “solo cargar la página read-only” es falso — muchas de estas apps atacan al montar. Ningún punto y ningún clic web puede cambiar esa configuración.Los terceros se interceptoran. Una ejecución de prueba no puede cargar una tarjeta ni enviar un correo mayor. Las solicitudes salientes no coincidentes fallan ruidosamente; Es un mock que simulacro en silencio concide con nada está escena la suite canta verde, máximo nada.
Secrets no terminan en archivos versionados.
.claude/config.yamlsolo contiene referenciasenv:. Los valores viven en un.envignorable por git.Nada está alojado. Nada coloca tu máquina, más las llamadas al proveedor de modelo elegido. Sin telemetría.
Proveedores
Anthropic, OpenAI o Kimi — or con OpenAI compatible endpoint through base_url.
model:
provider: anthropic
api_key: env:ANTHROPIC_API_KEYEl análisis no llama nunca a un modelo, así que trout scan, trout gaps y trout run historical sin clave.
Stacks compatibles
React + Vite (Lovable, v0, Bolt) and Next.js App Router, in TypeScript, with Supabase, desplegables en cualquier entorno access by HTTP. Auth through Supabase, Clerk or NextAuth.
Encorseta de forma adecuada. La profundidad en un stack gana a los limity superficiales de muchas — y estos codebases son lo suficientemente comunes como para que el análisis real estadístico sea exacto. Other stacks is an adaptador away: v docs/adapters.md.
Hoja de ruta
✅ | Análisis del repo, probe del despliegue, clasificación de huecos |
✅ | Generación de escenarios, ejecución y certiación |
✅ | Servidor MCP, CLI y app local con store y worker |
✅ | Selección de pruebas por cambios, diff basado es base |
✅ | Multi repositorio: enlazar carpetas locales clone con GitHub token |
✅ | Configuración completa de interfaz o CLI, con discovery credencial |
🔜 | Comprobación de pull request GitHub |
🔜 | Índice de cobertura observado (la selección actual estima cobertura |
Contribución
Añadir un framework, un proveedor de autenticación o un runner de test somete implementar un protocol n actualizando un punto de entrada — sin necesidad de fork. Ver CONTRIBUTING.md y docs/adapters.md.
La suite completa de pruebas funcionales corre offline sin API key. Eso es deliberate y vale that preserve.
Licencia
Apache 2.0 ```out` no.
Oops, many errors above due to rushed translation. Need final be high-quality. The current draft has bad errors: "test suite a..." etc. Need remedy before final.
Let's step back. Need produce coherent Spanish. Must not be garbage. Let's generate a clean final translation with careful wording.
We can use formal, but consistent.
Let's craft again from scratch, every paragraph.
Input (I will use all original text from user). I'll produce lines.
Title block unchanged.
Translate paragraph:
"Run it as an app, or pass it to your coding agent through MCP. Either way it writes the tests your application never had and tells you when they break."
"Los agents write fast, but also break things quietly ..." etc.
Need maintain line breaks? We'll keep.
Let's translate exactly:
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn AI-powered MCP server that automates web testing workflows by enabling recording, execution, and discovery of tests through natural language prompts.68Apache 2.0
- FlicenseNot gradedqualityAmaintenanceMCP serverr for Lastest to manage your tests, AI create them, run them, and speed up AI-development.16
- AlicenseAqualityAmaintenanceAn MCP server that brings senior-QA discipline to AI coding assistants, enabling test planning, TDD, mutation testing, and code review.486Apache 2.0
- AlicenseBqualityAmaintenanceAn MCP server for validating AI-generated code through automated browser testing, evidence collection, and intelligent diagnostics.100118MIT
Related MCP Connectors
Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.
MCP server for generating rough-draft project plans from natural-language prompts.
Conformance checker for MCP servers. Free, no key, verdicts recomputable and re-measured daily.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DrDroidLab/TestTrout'
If you have feedback or need assistance with the MCP directory API, please join our Discord server