尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Tu propio Test Manager (tipo TestRail/Qase), hecho a la medida y sin costo de licencia.查看完整 README ↗
Tu propio Test Manager (tipo TestRail/Qase), hecho a la medida y sin costo de licencia.
postgres-js) — funciona con cualquier Postgres, incluyendo el plan gratis de Neon o SupabaseLas evidencias/screenshots se guardan directo en la base de datos (no en disco), así que la app entera no necesita ningún disco persistente — puede correr en cualquier hosting, incluyendo los serverless como Vercel.
5432)..env.example a .env y pega esa cadena de conexión en DATABASE_URL (reemplaza [YOUR-PASSWORD] por la contraseña del proyecto).npm install
npm run dev
Todas las tablas se crean automáticamente la primera vez que arranca la app — no hace falta ningún paso manual de migración.
Abre http://localhost:3000, regístrate — el primer usuario registrado es admin automáticamente — y crea tu primer proyecto.
Si ya tenías datos en otra base Postgres (p. ej. Neon), cópialos así:
SOURCE_DATABASE_URL="postgresql://...origen..." DATABASE_URL="postgresql://...supabase...:5432/postgres" npx tsx scripts/copy-db.ts
El script crea las tablas en Supabase, copia todo en una sola transacción y se detiene si el destino ya tiene datos (añade --truncate para vaciarlo antes). Usa el Session pooler (5432) para esto, no el Transaction pooler.
Si alguna vez cambias el esquema en
src/db/schema.ts, correnpx drizzle-kit generatepara generar el archivo SQL de migración correspondiente en./drizzle(ese sí se sube al repo) — las migraciones se siguen aplicando solas al arrancar.
Copia .env.example a .env y ajusta:
| Variable | Para qué sirve |
|---|---|
AUTH_SECRET | Clave para firmar las sesiones. Genera una con openssl rand -base64 32 y cámbiala en producción. |
DATABASE_URL | Cadena de conexión de tu base de datos Postgres (Supabase). En servidores propios usa el Session pooler (5432); en Vercel/serverless el Transaction pooler (6543) — la app desactiva los prepared statements automáticamente en ese caso. |
AUTH_TRUST_HOST | Ponlo en true cuando despliegues en un dominio propio (fuera de localhost). No hace falta en Vercel, se detecta solo. |
Como la base de datos vive aparte (Postgres) y no hay archivos en disco, la app en sí puede vivir en cualquier hosting — incluyendo los gratis.
6543).testmanager.AUTH_SECRET: genera una con openssl rand -base64 32DATABASE_URL: el connection string de Supabase (Transaction pooler)https://testmanager-tuusuario.vercel.app), gratis, sin tarjeta.Nota: en el plan gratis de Vercel, la app "duerme" un poco entre visitas si nadie la usa (arranca en 1-2 segundos al primer request), pero para un equipo de QA chico no se nota.
Todas usan el mismo Dockerfile — solo cambia dónde corre:
DATABASE_URL (puedes usar el mismo Supabase, o el Postgres que ofrece Railway).git clone <tu-repo>
cd testmanager
docker compose up -d --build # incluye un Postgres local si no quieres usar Supabase
Con un dominio + Nginx/Caddy como proxy inverso (para HTTPS), queda accesible en https://testmanager.tudominio.com.
playwright-integration/testmanager-reporter.ts a tu proyecto de Playwright.playwright.config.ts, agrega el reporter (ejemplo completo en playwright-integration/playwright.config.example.ts):reporter: [
["list"],
["./tests/testmanager-reporter.ts", {
url: "https://tu-testmanager.com/api/ingest",
apiKey: process.env.TESTMANAGER_API_KEY,
runName: `Regression Run - ${new Date().toLocaleString()}`,
}],
],
npx playwright test). Al terminar, el reporter manda todo automáticamente:Playwright
→ ejecuta LoginTest
→ pasa ✅
→ manda resultado a tu Test Manager
→ tu dashboard muestra:
Regression Run #15
🧪 50 tests
✅ 44 Passed
❌ 4 Failed
⏭️ 2 Skipped
Si un test de Playwright tiene un título igual al campo "ID/título del test en Playwright" de un caso de prueba ya creado en el Test Manager, el resultado se asocia a ese caso. Si no existe, se crea automáticamente dentro de una suite "Automatizado (Playwright)".
src/
app/ páginas y rutas de API (Next.js App Router)
components/ componentes de UI (cliente)
db/schema.ts esquema completo de la base de datos (Drizzle)
lib/auth.ts configuración de NextAuth
playwright-integration/ reporter y config de ejemplo para Playwright
(El primer usuario registrado es admin. Todos los usuarios registrados actualmente pueden ver todos los proyectos — modelo simple para equipos chicos. Si necesitas restringir por proyecto, es una extensión sencilla sobre la tabla project_members que ya existe en el esquema.)