[DTP-Worker] Sprint 8 · buffer L75 · Intégrité matrice régression : fix gate check_regression cassé en CI (run baseline commité) + invariant disque→CI (INV4 orphan_tests_dirs)
Défaut #1 (bug CI réel) : ci/check_regression.sh exigeait regression_run.json commité comme baseline, mais le fichier était .gitignore → absent en checkout propre → le job Gitea check-regression échouait sur CHAQUE run CI (ne passait qu'en local via un fichier non suivi). L'artefact run est byte-déterministe (aucun horodatage/hôte/durée · path relatif) → committer est licite. Fix : run désormais commité (baseline), .gitignore + README réécrits. Défaut #2 (invariant manquant) : coverage_report prouvait CI→disque mais pas l'inverse. Nouveau disk_test_modules() + orphan_tests_dirs dans INV4 : un module gagnant un tests/ sans job CI fait chuter la couverture (fini la sous-comptée silencieuse de la matrice). Schéma + 2 tests de morsure. Consommateur régénéré : qa/audit_4big/quality_report.json (README 3710→4236 o, 24→26 méthodes). Matrice 534/21/PASS inchangée (harnais self-exclu, INV3). 5 gates verts · 26+34 tests OK · YAML valide.
This commit is contained in:
@@ -22,7 +22,8 @@
|
||||
"self_module_excluded": "qa/regression",
|
||||
"self_module_gated": true,
|
||||
"missing_tests_dir": [],
|
||||
"not_in_gate": []
|
||||
"not_in_gate": [],
|
||||
"orphan_tests_dirs": []
|
||||
},
|
||||
"suites": [
|
||||
{
|
||||
|
||||
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"matrix": "OTO QA · Matrice de régression exhaustive",
|
||||
"version": "1.0",
|
||||
"self_module": "qa/regression",
|
||||
"suites": [
|
||||
{
|
||||
"id": "crm.commissions",
|
||||
"path": "crm/commissions",
|
||||
"expected_methods": 25,
|
||||
"ran": 25,
|
||||
"passed": 25,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "crm.dossier_vente",
|
||||
"path": "crm/dossier_vente",
|
||||
"expected_methods": 31,
|
||||
"ran": 31,
|
||||
"passed": 31,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "crm.workflow_vente",
|
||||
"path": "crm/workflow_vente",
|
||||
"expected_methods": 25,
|
||||
"ran": 25,
|
||||
"passed": 25,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "demo.scenarios",
|
||||
"path": "demo/scenarios",
|
||||
"expected_methods": 32,
|
||||
"ran": 32,
|
||||
"passed": 32,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "devops.deploy_runbook",
|
||||
"path": "devops/deploy_runbook",
|
||||
"expected_methods": 29,
|
||||
"ran": 29,
|
||||
"passed": 29,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "faisabilite.bancable",
|
||||
"path": "faisabilite/bancable",
|
||||
"expected_methods": 22,
|
||||
"ran": 22,
|
||||
"passed": 22,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "faisabilite.generator",
|
||||
"path": "faisabilite/generator",
|
||||
"expected_methods": 16,
|
||||
"ran": 16,
|
||||
"passed": 16,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "fiscal.ecf_dgii",
|
||||
"path": "fiscal/ecf_dgii",
|
||||
"expected_methods": 39,
|
||||
"ran": 39,
|
||||
"passed": 39,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "frontend.chat_otoia",
|
||||
"path": "frontend/chat_otoia",
|
||||
"expected_methods": 31,
|
||||
"ran": 31,
|
||||
"passed": 31,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "frontend.portails",
|
||||
"path": "frontend/portails",
|
||||
"expected_methods": 19,
|
||||
"ran": 19,
|
||||
"passed": 19,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "legal.confotur",
|
||||
"path": "legal/confotur",
|
||||
"expected_methods": 44,
|
||||
"ran": 44,
|
||||
"passed": 44,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "publiciste",
|
||||
"path": "publiciste",
|
||||
"expected_methods": 23,
|
||||
"ran": 23,
|
||||
"passed": 23,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "qa.acceptance",
|
||||
"path": "qa/acceptance",
|
||||
"expected_methods": 31,
|
||||
"ran": 31,
|
||||
"passed": 31,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "qa.audit_4big",
|
||||
"path": "qa/audit_4big",
|
||||
"expected_methods": 34,
|
||||
"ran": 34,
|
||||
"passed": 34,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "qa.audit_5d",
|
||||
"path": "qa/audit_5d",
|
||||
"expected_methods": 37,
|
||||
"ran": 37,
|
||||
"passed": 37,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "rbac",
|
||||
"path": "rbac",
|
||||
"expected_methods": 10,
|
||||
"ran": 10,
|
||||
"passed": 10,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "rbac.apply_plan",
|
||||
"path": "rbac/apply_plan",
|
||||
"expected_methods": 16,
|
||||
"ran": 16,
|
||||
"passed": 16,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "rbac.fixtures_gen",
|
||||
"path": "rbac/fixtures_gen",
|
||||
"expected_methods": 11,
|
||||
"ran": 11,
|
||||
"passed": 11,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "rbac.roleprofile_gen",
|
||||
"path": "rbac/roleprofile_gen",
|
||||
"expected_methods": 11,
|
||||
"ran": 11,
|
||||
"passed": 11,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "rbac.userperm_gen",
|
||||
"path": "rbac/userperm_gen",
|
||||
"expected_methods": 12,
|
||||
"ran": 12,
|
||||
"passed": 12,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"id": "seo",
|
||||
"path": "seo",
|
||||
"expected_methods": 36,
|
||||
"ran": 36,
|
||||
"passed": 36,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0,
|
||||
"ok": true,
|
||||
"returncode": 0
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"suites": 21,
|
||||
"green": 21,
|
||||
"red": 0,
|
||||
"ran": 534,
|
||||
"passed": 534,
|
||||
"failures": 0,
|
||||
"errors": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"verdict": "PASS"
|
||||
}
|
||||
Reference in New Issue
Block a user