[TikiWiki-commits] [Git][tikiwiki/tiki][master] 3 commits: [ENH] Add phpunit coverage information for gitlab

Benoit Grégoire (@benoitg) via TikiWiki-cvs <[email protected]> Sat, 25 Jul 2026 03:32:48 +0000
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <6a642e60957ef_381b0f96f852357@gitlab-sidekiq-low-urgency-cpu-bound-v2-7d8cd68bcd-lrhfc.mail>

Benoit Grégoire pushed to branch master at Tiki Wiki CMS Groupware / Tiki


Commits:
c168e094 by Benoit Grégoire at 2026-07-25T03:20:53+00:00
[ENH] Add phpunit coverage information for gitlab

- - - - -
226a9e5f by Benoit Grégoire at 2026-07-25T03:20:53+00:00
Gitlab doesn't process coverage properly if run under parallel matrix execution and some have no coverage artifacts.  So split the list in two.

- - - - -
015517cb by Benoit Grégoire at 2026-07-25T03:20:53+00:00
[ENH] vitest: Gerenrate cobertura and juint test report for gitlab.  Switch to the v8 coverage provider as istambut has a buggy cobertura implementation

- - - - -


6 changed files:

- .gitignore
- .gitlab-ci.yml
- package-lock.json
- package.json
- phpunit.xml.dist
- src/js/vite.config.mjs


Changes:

=====================================
.gitignore
=====================================
@@ -29,8 +29,6 @@ auto-imports.d.ts
 #dbdiff
 tikiold.sql
 tikinew.sql
-#phpunit report
-report.xml
 /.composercache
 /before
 /after


=====================================
.gitlab-ci.yml
=====================================
@@ -574,6 +574,14 @@ console-php-works:
   image: ${DEPENDENCY_PROXY_PREFIX}tikiwiki/tikiwiki-ci:${PHP_VERSION}-qa
   services:
     - name: ${DEPENDENCY_PROXY_PREFIX}${DB_IMAGE}
+      # TODO:  All these aliases (mysql, elasticsearch, manticore) 
+      # need to be scoped with the version of the image or some other unique hash.
+      # Otherwise there are conflicts if a big docker machine runs them concurrently.
+      # If you get messages like:
+      # WARNING: Skipping alias "mysql" for service "mysql:5.7.44" (services[0]): alias is already in use by another service.
+      # WARNING: Possibly zombie container runner-k5qwkzlfy-project-44278468-concurrent-15-573f5bc5b25f298f-mysql-0-wait-for-service is disconnected from network bridge
+      # This is the problem.  The test may fail or succeed, but the result cannot be trusted.
+      # benoitg - 2026-07-24 
       alias: mysql
       command: ["--explicit-defaults-for-timestamp=off"]
     - name: ${DEPENDENCY_PROXY_PREFIX}elasticsearch:5
@@ -589,22 +597,33 @@ console-php-works:
     - 'echo -n "ElasticSearch Version: " && curl -sS -XGET ''http://elasticsearch:9200'' | grep ''"number"'' | sed ''s/.*:.*"\(.*\)".*/\1/'''
     - 'echo -n "Manticore Version: " && mysql -h manticore -P 9306 -e "status" | grep "Server version:" | sed "s/^[^:]*:[[:space:]]*//"'
     - echo '<?php $host_tiki = "mysql"; $user_tiki = "tikiuser"; $pass_tiki = "tikipass"; $dbs_tiki = "tikitest"; $client_charset = "utf8mb4"; ' > lib/test/local.php
-    - php -d display_errors=On vendor_bundled/vendor/phpunit/phpunit/phpunit --colors=always --log-junit report.xml --exclude-group api-integration-test --display-deprecations --display-notices --display-warnings
+    - php -d display_errors=On vendor_bundled/vendor/phpunit/phpunit/phpunit $PHPUNIT_EXTRA_PARAMS --log-junit temp/ci/phpunit-report.xml --exclude-group api-integration-test --display-deprecations --display-notices --display-warnings
+
+unit-tests-php-latest-coverage:
+  #We only generate one coverage report, for the lastest PHP.  Gitlab won't properly process if more than one parallel run has coverage artifacts.
+  extends: .template-unit-tests
+  allow_failure: false
+  variables:
+    XDEBUG_MODE: coverage
+    PHPUNIT_EXTRA_PARAMS: --coverage-cobertura temp/ci/phpunit-coverage.xml --coverage-text --colors=never
   artifacts:
     when: always
-    paths:
-      - report.xml
     reports:
-      junit: report.xml
-    expire_in: 2 days
+      junit: temp/ci/phpunit-report.xml
+      coverage_report:
+        coverage_format: cobertura
+        path: temp/ci/phpunit-coverage.xml
+  coverage: '/^\s*Lines:\s*\d+.\d+\%/'
+  parallel:
+    matrix:
+      - PHP_VERSION: "8.5"
+        DB_IMAGE: ${MARIADB_IMAGE_NEWEST_SUPPORTED}
 
-unit-tests:
+unit-tests-php-previousVersions:
   extends: .template-unit-tests
   allow_failure: false
   parallel:
     matrix:
-      - PHP_VERSION: "8.5"
-        DB_IMAGE: ${MARIADB_IMAGE_NEWEST_SUPPORTED}
       - PHP_VERSION: "8.4"
         DB_IMAGE: ${MYSQL_IMAGE_NEWEST_SUPPORTED}
       - PHP_VERSION: "8.3"
@@ -648,6 +667,13 @@ unit-tests-node:
   script:
     - npm run testci
   coverage: '/All files(?:[^|]*\|){4}\s*(\S+)/'
+  artifacts:
+    when: always
+    reports:
+      junit: temp/ci/js-junit-report.xml
+      coverage_report:
+        coverage_format: cobertura
+        path: temp/ci/js_coverage/cobertura-coverage.xml
 
 # This test is only required because we don't have a combined node and php image currently. - benoitg - 2025-03-08
 unit-tests-icon-generator:


=====================================
package-lock.json
=====================================
@@ -40,7 +40,7 @@
                 "@stylistic/eslint-plugin": "^5.6.1",
                 "@testing-library/vue": "^8.1.0",
                 "@vitejs/plugin-vue": "^6.0.3",
-                "@vitest/coverage-istanbul": "^4.0.16",
+                "@vitest/coverage-v8": "^4.0.16",
                 "check-engine": "^1.14.0",
                 "concurrently": "^9.2.1",
                 "copy-and-watch": "^0.1.8",
@@ -613,6 +613,16 @@
                 "node": ">=6.9.0"
             }
         },
+        "node_modules/@bcoe/v8-coverage": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz",
+            "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==",
+            "dev": true,
+            "license": "MIT",
+            "engines": {
+                "node": ">=18"
+            }
+        },
         "node_modules/@braintree/sanitize-url": {
             "version": "7.1.2",
             "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz",
@@ -2240,16 +2250,6 @@
                 "node": ">=12"
             }
         },
-        "node_modules/@istanbuljs/schema": {
-            "version": "0.1.6",
-            "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz",
-            "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=8"
-            }
-        },
         "node_modules/@jridgewell/gen-mapping": {
             "version": "0.3.13",
             "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -2499,7 +2499,6 @@
             "hasInstallScript": true,
             "license": "MIT",
             "optional": true,
-            "peer": true,
             "dependencies": {
                 "detect-libc": "^2.0.3",
                 "is-glob": "^4.0.3",
@@ -2542,7 +2541,6 @@
             "os": [
                 "android"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2564,7 +2562,6 @@
             "os": [
                 "darwin"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2586,7 +2583,6 @@
             "os": [
                 "darwin"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2608,7 +2604,6 @@
             "os": [
                 "freebsd"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2630,7 +2625,6 @@
             "os": [
                 "linux"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2652,7 +2646,6 @@
             "os": [
                 "linux"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2674,7 +2667,6 @@
             "os": [
                 "linux"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2696,7 +2688,6 @@
             "os": [
                 "linux"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2718,7 +2709,6 @@
             "os": [
                 "linux"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2740,7 +2730,6 @@
             "os": [
                 "linux"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2762,7 +2751,6 @@
             "os": [
                 "win32"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2784,7 +2772,6 @@
             "os": [
                 "win32"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -2806,7 +2793,6 @@
             "os": [
                 "win32"
             ],
-            "peer": true,
             "engines": {
                 "node": ">= 10.0.0"
             },
@@ -4307,42 +4293,48 @@
                 "vue": "^3.2.25"
             }
         },
-        "node_modules/@vitest/coverage-istanbul": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-4.1.5.tgz",
-            "integrity": "sha512-X4kQMDEWh9mA0IiLuigtdYv4kXe+W8KLTbucoz15lbyZRPAxT5l+hu0JizI7Am050+G9vQnB7QJNgYi2LnwV4w==",
+        "node_modules/@vitest/coverage-v8": {
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz",
+            "integrity": "sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==",
             "dev": true,
             "license": "MIT",
             "dependencies": {
-                "@babel/core": "^7.29.0",
-                "@istanbuljs/schema": "^0.1.3",
-                "@jridgewell/gen-mapping": "^0.3.13",
-                "@jridgewell/trace-mapping": "0.3.31",
+                "@bcoe/v8-coverage": "^1.0.2",
+                "@vitest/utils": "4.1.10",
+                "ast-v8-to-istanbul": "^1.0.0",
                 "istanbul-lib-coverage": "^3.2.2",
                 "istanbul-lib-report": "^3.0.1",
                 "istanbul-reports": "^3.2.0",
                 "magicast": "^0.5.2",
                 "obug": "^2.1.1",
+                "std-env": "^4.0.0-rc.1",
                 "tinyrainbow": "^3.1.0"
             },
             "funding": {
                 "url": "https://opencollective.com/vitest"
             },
             "peerDependencies": {
-                "vitest": "4.1.5"
+                "@vitest/browser": "4.1.10",
+                "vitest": "4.1.10"
+            },
+            "peerDependenciesMeta": {
+                "@vitest/browser": {
+                    "optional": true
+                }
             }
         },
         "node_modules/@vitest/expect": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz",
-            "integrity": "sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==",
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz",
+            "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==",
             "dev": true,
             "license": "MIT",
             "dependencies": {
                 "@standard-schema/spec": "^1.1.0",
                 "@types/chai": "^5.2.2",
-                "@vitest/spy": "4.1.5",
-                "@vitest/utils": "4.1.5",
+                "@vitest/spy": "4.1.10",
+                "@vitest/utils": "4.1.10",
                 "chai": "^6.2.2",
                 "tinyrainbow": "^3.1.0"
             },
@@ -4351,13 +4343,13 @@
             }
         },
         "node_modules/@vitest/mocker": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz",
-            "integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==",
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz",
+            "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==",
             "dev": true,
             "license": "MIT",
             "dependencies": {
-                "@vitest/spy": "4.1.5",
+                "@vitest/spy": "4.1.10",
                 "estree-walker": "^3.0.3",
                 "magic-string": "^0.30.21"
             },
@@ -4388,9 +4380,9 @@
             }
         },
         "node_modules/@vitest/pretty-format": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz",
-            "integrity": "sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==",
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz",
+            "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==",
             "dev": true,
             "license": "MIT",
             "dependencies": {
@@ -4401,13 +4393,13 @@
             }
         },
         "node_modules/@vitest/runner": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz",
-            "integrity": "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==",
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz",
+            "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==",
             "dev": true,
             "license": "MIT",
             "dependencies": {
-                "@vitest/utils": "4.1.5",
+                "@vitest/utils": "4.1.10",
                 "pathe": "^2.0.3"
             },
             "funding": {
@@ -4415,14 +4407,14 @@
             }
         },
         "node_modules/@vitest/snapshot": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.5.tgz",
-            "integrity": "sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==",
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz",
+            "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==",
             "dev": true,
             "license": "MIT",
             "dependencies": {
-                "@vitest/pretty-format": "4.1.5",
-                "@vitest/utils": "4.1.5",
+                "@vitest/pretty-format": "4.1.10",
+                "@vitest/utils": "4.1.10",
                 "magic-string": "^0.30.21",
                 "pathe": "^2.0.3"
             },
@@ -4431,9 +4423,9 @@
             }
         },
         "node_modules/@vitest/spy": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz",
-            "integrity": "sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==",
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz",
+            "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==",
             "dev": true,
             "license": "MIT",
             "funding": {
@@ -4441,13 +4433,13 @@
             }
         },
         "node_modules/@vitest/utils": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz",
-            "integrity": "sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==",
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz",
+            "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==",
             "dev": true,
             "license": "MIT",
             "dependencies": {
-                "@vitest/pretty-format": "4.1.5",
+                "@vitest/pretty-format": "4.1.10",
                 "convert-source-map": "^2.0.0",
                 "tinyrainbow": "^3.1.0"
             },
@@ -5560,6 +5552,35 @@
                 "node": ">=12"
             }
         },
+        "node_modules/ast-v8-to-istanbul": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.5.tgz",
+            "integrity": "sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==",
+            "dev": true,
+            "license": "MIT",
+            "dependencies": {
+                "@jridgewell/trace-mapping": "^0.3.31",
+                "estree-walker": "^3.0.3",
+                "js-tokens": "^10.0.0"
+            }
+        },
+        "node_modules/ast-v8-to-istanbul/node_modules/estree-walker": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+            "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+            "dev": true,
+            "license": "MIT",
+            "dependencies": {
+                "@types/estree": "^1.0.0"
+            }
+        },
+        "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": {
+            "version": "10.0.0",
+            "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz",
+            "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==",
+            "dev": true,
+            "license": "MIT"
+        },
         "node_modules/async-es": {
             "version": "3.2.6",
             "resolved": "https://registry.npmjs.org/async-es/-/async-es-3.2.6.tgz",
@@ -7920,7 +7941,6 @@
             "dev": true,
             "license": "Apache-2.0",
             "optional": true,
-            "peer": true,
             "engines": {
                 "node": ">=8"
             }
@@ -12105,8 +12125,7 @@
             "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
             "dev": true,
             "license": "MIT",
-            "optional": true,
-            "peer": true
+            "optional": true
         },
         "node_modules/node-releases": {
             "version": "2.0.38",
@@ -15812,19 +15831,19 @@
             }
         },
         "node_modules/vitest": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.5.tgz",
-            "integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==",
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz",
+            "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==",
             "dev": true,
             "license": "MIT",
             "dependencies": {
-                "@vitest/expect": "4.1.5",
-                "@vitest/mocker": "4.1.5",
-                "@vitest/pretty-format": "4.1.5",
-                "@vitest/runner": "4.1.5",
-                "@vitest/snapshot": "4.1.5",
-                "@vitest/spy": "4.1.5",
-                "@vitest/utils": "4.1.5",
+                "@vitest/expect": "4.1.10",
+                "@vitest/mocker": "4.1.10",
+                "@vitest/pretty-format": "4.1.10",
+                "@vitest/runner": "4.1.10",
+                "@vitest/snapshot": "4.1.10",
+                "@vitest/spy": "4.1.10",
+                "@vitest/utils": "4.1.10",
                 "es-module-lexer": "^2.0.0",
                 "expect-type": "^1.3.0",
                 "magic-string": "^0.30.21",
@@ -15852,12 +15871,12 @@
                 "@edge-runtime/vm": "*",
                 "@opentelemetry/api": "^1.9.0",
                 "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
-                "@vitest/browser-playwright": "4.1.5",
-                "@vitest/browser-preview": "4.1.5",
-                "@vitest/browser-webdriverio": "4.1.5",
-                "@vitest/coverage-istanbul": "4.1.5",
-                "@vitest/coverage-v8": "4.1.5",
-                "@vitest/ui": "4.1.5",
+                "@vitest/browser-playwright": "4.1.10",
+                "@vitest/browser-preview": "4.1.10",
+                "@vitest/browser-webdriverio": "4.1.10",
+                "@vitest/coverage-istanbul": "4.1.10",
+                "@vitest/coverage-v8": "4.1.10",
+                "@vitest/ui": "4.1.10",
                 "happy-dom": "*",
                 "jsdom": "*",
                 "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"


=====================================
package.json
=====================================
@@ -81,7 +81,7 @@
         "@stylistic/eslint-plugin" : "^5.6.1",
         "@testing-library/vue" : "^8.1.0",
         "@vitejs/plugin-vue" : "^6.0.3",
-        "@vitest/coverage-istanbul" : "^4.0.16",
+        "@vitest/coverage-v8" : "^4.0.16",
         "check-engine" : "^1.14.0",
         "concurrently" : "^9.2.1",
         "copy-and-watch" : "^0.1.8",


=====================================
phpunit.xml.dist
=====================================
@@ -62,14 +62,14 @@
     <ini name="date.timezone" value="UTC"/>
   </php>
   <logging>
-    <junit outputFile="temp/phpunit.junit.xml"/>
+    <junit outputFile="temp/ci/phpunit-report.xml"/>
     <!--
         Coverage analysis more than double the time to run tests.
         Instead of enabling this, on the build server, use:
         1. Setup phpStorm integration http://dev.tiki.org/PhpStorm?latest=1#Set_up_PHPUnit_in_Run_Debug_Config
-        2. Run from the command line with with the option: coverage-clover temp/clover.xml
+        2. Run from the command line with with the option: coverage-clover temp/ci/clover.xml
         Note that you will need php-xdebug installed to run it.
-        <log type="coverage-clover" target="temp/clover.xml" />
+        <log type="coverage-clover" target="temp/ci/clover.xml" />
         <log type="coverage-text" target="php://stdout" showUncoveredFiles="false" showOnlySummary="true" />
       -->
   </logging>


=====================================
src/js/vite.config.mjs
=====================================
@@ -743,7 +743,12 @@ export default defineConfig(({ command, mode }) => {
             include: ["src/js/**/tests/**/*.test.js"],
             globals: true,
             environment: "happy-dom",
+            reporters: [["default"], ["junit"]],
+            outputFile: {
+                junit: "./temp/ci/js-junit-report.xml",
+            },
             coverage: {
+                enabled: true,
                 include: [
                     "src/js/vue-widgets/**/*.{vue,js}",
                     "src/js/wysiwyg/**/*.js",
@@ -751,7 +756,13 @@ export default defineConfig(({ command, mode }) => {
                     "src/js/@tiki/ui-utils/handle*.js",
                 ],
                 exclude: ["**/*.ce.js", "**/*.test.js", "**/elements/**"],
-                provider: "istanbul",
+                provider: "v8",
+                reporter: [ ["text"],
+                            ["cobertura"]
+                        ],
+
+                //It's a bit dumb, one cannot specify the specific file with the cobertura reporter.  It will write to cobertura-coverage.xml
+                reportsDirectory: "./temp/ci/js_coverage",
             },
             server: {
                 deps: {



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/compare/d0be4a02b5450238b49ec9ff5cfb79aaff462468...015517cbf8dd8f80f852f084f636ea321964b8c3

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/compare/d0be4a02b5450238b49ec9ff5cfb79aaff462468...015517cbf8dd8f80f852f084f636ea321964b8c3
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs