Saltar al contenido principal

CLI — @qa-hub/cli

@qa-hub/cli es una herramienta de línea de comandos independiente del framework para subir resultados de tests a QA Hub desde cualquier pipeline CI/CD.

Instalar

npm install -g @qa-hub/cli
# o usar directamente via npx
npx @qa-hub/cli upload ...

Subir resultados de tests

qa-hub upload \
--token qh_abc_yoursecret \
--url https://your-qahub.com \
--project your-project-id \
--format playwright \
--run-name "CI build #442" \
playwright-results.json

Opciones

FlagDescripción
--tokenToken de API (se requiere scope write)
--urlURL base de tu instancia de QA Hub
--projectID del proyecto bajo el que crear la ejecución
--formatFormato del resultado (ver abajo)
--run-nameNombre para la ejecución de prueba
--environmentEtiqueta de entorno (p. ej., staging)

Formatos soportados

FormatoTipo de archivoValor de --format
PlaywrightSalida del reporter JSONplaywright
CypressJUnit XMLcypress
JestJUnit XMLjest
Cualquier JUnit compatibleXMLjunit

Ejemplo con Playwright

Configura Playwright para generar un informe JSON:

// playwright.config.ts
export default {
reporter: [
['list'],
['json', { outputFile: 'playwright-results.json' }],
],
};

Luego sube en tu paso de CI:

# GitHub Actions
- name: Run Playwright tests
run: npx playwright test

- name: Upload results to QA Hub
if: always()
run: |
npx @qa-hub/cli upload \
--token ${{ secrets.QA_HUB_TOKEN }} \
--url ${{ secrets.QA_HUB_URL }} \
--project ${{ vars.QA_HUB_PROJECT_ID }} \
--format playwright \
--run-name "CI #${{ github.run_number }}" \
playwright-results.json

Ejemplo con Jest + JUnit

# Instalar jest-junit
npm install --save-dev jest-junit

# Ejecutar Jest con el reporter JUnit
JEST_JUNIT_OUTPUT_FILE=results.xml npx jest --reporters=jest-junit

# Subir
npx @qa-hub/cli upload --format jest --run-name "Unit tests" results.xml

Mapear resultados a casos de prueba

Etiqueta los títulos de tus tests con @qa-hub('TC-NNN') para vincular los resultados de CI a los casos de prueba existentes en la biblioteca:

// Playwright
test("Login — invalid credentials @qa-hub('TC-042')", async ({ page }) => {
// ...
});
// Jest
it("should reject expired tokens @qa-hub('TC-017')", () => {
// ...
});

La CLI extrae la etiqueta y establece test_case_code al publicar los resultados. Los tests sin etiquetar se registran como resultados no vinculados y se contabilizan en las métricas pero no se mapean a casos de prueba de la biblioteca.

Variables de entorno

Puedes establecer valores por defecto via variables de entorno para evitar repetir flags:

export QA_HUB_TOKEN=qh_abc_yoursecret
export QA_HUB_URL=https://your-qahub.com
export QA_HUB_PROJECT=your-project-id

Códigos de salida

CódigoSignificado
0Todos los resultados subidos correctamente
1Subida fallida (error de autenticación, error de red)
2Subida parcial — algunos resultados rechazados (ver salida)