Skip to main content

This module override Odoo testing method to run them with xmlrunner tool.

Project description

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

This module generate unittest reports using unittest-xml-reporting tool.

Table of contents

Installation

Install python library https://pypi.org/project/unittest-xml-reporting/

The module is automatically installed on the Odoo instance.

Usage

Run the native Odoo tests

Run the native Odoo tests. See the Odoo documentation for more information.

Gitlab CI usage example

Add the following job to your .gitlab-ci.yml file:

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

Github Actions usage example

Add the following job to your .github/workflows/main.yml file:

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'

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Smile

Other credits

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/server-tools project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file odoo_addon_odoo_test_xmlrunner-16.0.1.0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for odoo_addon_odoo_test_xmlrunner-16.0.1.0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e9a113852f95464cee18db5a3ae0afcd6d41c627fe5f451299287bfa8d0a8033
MD5 021b9b5045c9a0bd28f637b8c6e145c7
BLAKE2b-256 e8b4e4aabbee18693f9d0967c973461a9773729f4833c96809f93805539674f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page