OdooWiki OCA HUB

Unittest xUnit reports

odoo_test_xmlrunner folder_open OCA/server-tools open_in_new
Tools Licencia: AGPL-3

Este módulo genera informes de unittest utilizando la herramienta unittest-xml-reporting.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 18.0

Este módulo cambia cómo Odoo ejecuta sus pruebas automatizadas para que los resultados se guarden como archivos de informe XML de estilo xUnit en lugar de mostrarse solo en pantalla.

Esta es una herramienta técnica para desarrolladores y administradores de sistemas, no un módulo que añade pantallas o menús para los usuarios cotidianos. Cuando Odoo se inicia con las pruebas habilitadas, el módulo reemplaza el ejecutor de pruebas normal por una herramienta externa llamada unittest-xml-reporting.

Qué hace: - Ejecuta la suite de pruebas a través del ejecutor de pruebas XML. - Escribe los resultados de las pruebas como archivos XML en una carpeta llamada test_results (u otra carpeta si se configura una). - Crea esa carpeta automáticamente si aún no existe. - Mantiene sincronizados los propios contadores de resultados de pruebas de Odoo, sumando fallos, errores, pruebas omitidas y el número de pruebas ejecutadas a partir de los resultados XML.

Dónde aparece en Odoo: en ningún lugar de la interfaz de usuario. No se añaden menús, botones ni informes. El único efecto visible son los archivos XML producidos en el servidor tras una ejecución de pruebas.

Qué áreas toca: solo depende del módulo base y parchea las clases de la suite de pruebas y de los resultados de pruebas (OdooSuite y OdooTestResult). También requiere que el paquete de Python unittest-xml-reporting esté instalado en el servidor.

Como el código solo cambia el ejecutor de pruebas, no afecta a ventas, contabilidad, inventario ni ningún otro proceso de negocio.

Depende de

base

Texto generado por IA (DeepSeek) al leer el código de la versión 18.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 2 confirmadas, 7 sin información de 9 versiones.

Fuentes · Odoo 18.0

Confirmado el 2026-11-03 en la rama 18.0 de OCA/server-tools.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

Instalar la librería de python https://pypi.org/project/unittest-xml-reporting/

El módulo se instala automáticamente en la instancia de Odoo.

Ejecutar las pruebas nativas de Odoo

Ejecutar las pruebas nativas de Odoo. Consulte la documentación de Odoo para más información.

Ejemplo de uso en Gitlab CI

Añada el siguiente job a su archivo .gitlab-ci.yml:

stages:
  - test

variables:
  POSTGRES_DB: odoo
  POSTGRES_USER: odoo
  POSTGRES_PASSWORD: odoo
  POSTGRES_HOST_AUTH_METHOD: trust

test:
  stage: test
  image:
    name: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest
  services:
    - name: postgres:15
  tags:
    - gitlab-org-docker
  script:
    # install odoo and run tests
    - oca_install_addons && oca_init_test_database && oca_run_tests
    # generate coverage report
    - coverage html -d htmlcov && coverage xml -o coverage.xml
    # read line-rate from coverage.xml and print it as percentage
    - total=$(grep -oP '<coverage[^>]*line-rate="\K[0-9.]+' coverage.xml | head -n 1 | awk '{print $1 * 100}') && echo "total ${total}%"
  coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
  artifacts:
    paths:
      - htmlcov/*
    when: always
    reports:
      junit: test_results/*.xml
      coverage_report:
          coverage_format: cobertura
          path: coverage.xml

Ejemplo de uso en Github Actions

Añada el siguiente job a su archivo .github/workflows/main.yml:

name: tests

permissions:
    contents: read
    checks: write
    id-token: write

on:
  push:
    branches: ["main"]
    tags: ["*"]
  pull_request:

jobs:
  test:
    runs-on: ubuntu-22.04
    container: ${{ matrix.container }}
    name: ${{ matrix.name }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - container: ghcr.io/oca/oca-ci/py3.10-odoo17.0:latest
            name: test with Odoo
    services:
      postgres:
        image: postgres:12.0
        env:
          POSTGRES_USER: odoo
          POSTGRES_PASSWORD: odoo
          POSTGRES_DB: odoo
        ports:
          - 5432:5432
    steps:
      - uses: actions/checkout@v3
        with:
          persist-credentials: false
      - name: Install addons and dependencies
        run: oca_install_addons
      - name: Check licenses
        run: manifestoo -d . check-licenses
      - name: Check development status
        run: manifestoo -d . check-dev-status --default-dev-status=Beta
      - name: Initialize test db
        run: oca_init_test_database
      - name: Run tests
        run: oca_run_tests
      - uses: codecov/codecov-action@v4
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
      - name: Publish Test Report
        uses: mikepenz/action-junit-report@v4
        if: success() || failure() # always run even if the previous step fails
        with:
          report_paths: 'test_results/*.xml'

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.