====================== Unittest xUnit reports ====================== .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:dc5901a41067fac6a375c2ba99ceaf485afc9273c2248b73255cc1b99e6fddcf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta .. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github :target: https://github.com/OCA/server-tools/tree/16.0/odoo_test_xmlrunner :alt: OCA/server-tools .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/server-tools-16-0/server-tools-16-0-odoo_test_xmlrunner :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=16.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| This module generate unittest reports using unittest-xml-reporting tool. **Table of contents** .. contents:: :local: 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: .. code:: yaml 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 ']*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: .. code:: yaml 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 ------------- - `Smile `__: - Martin Deconinck martin.deconinck@smile.fr - `Akretion `__: - Florian Mounier florian.mounier@akretion.com Maintainers ----------- This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org 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.