Skip to content

Due numeri per la stessa copertura non sono una misura - #19

Closed
Alessandro114 wants to merge 1 commit into
mainfrom
misura/copertura-una-sola-versione
Closed

Alessandro114 wants to merge 1 commit into
mainfrom
misura/copertura-una-sola-versione

Conversation

@Alessandro114

Copy link
Copy Markdown
Owner

La CI misurava la copertura su entrambe le versioni della matrice e dava due risultati diversi per lo stesso codice:

copertura
Node 20 64,69% (6381/9863)
Node 22 60,34% (5952/9863)

Avevo detto che su Node 22 qualcosa non veniva eseguito. Sbagliato, e l'ho verificato leggendo i registri di entrambi i job: 16 test passati, 0 falliti, 0 saltati, su tutte e due. Gli stessi test, tutti.

La causa è che c8 legge la copertura dal profilo di V8, e il V8 di Node 22 attribuisce le righe in modo diverso da quello di Node 20. Stesso codice, stessa suite, 429 righe di scarto nel modo di contarle.

Il problema non è quale dei due numeri sia giusto: è che ce ne siano due. Un numero che dipende da quale job si guarda non si può confrontare nel tempo, e la prima volta che qualcuno dice "la copertura è scesa" nessuno sa se è vero.

Ora i test girano su entrambe le versioni — la matrice serve a questo — e la copertura si misura solo su Node 20, che è la versione del Dockerfile (node:20-alpine), cioè quella che gira davvero.

Da adesso il numero di riferimento è 64,69%, e il bersaglio dell'80% si misura da lì.

La CI misurava la copertura su tutte e due le versioni della matrice e dava
due risultati diversi per lo stesso codice:

  Node 20   64,69%  (6381/9863)
  Node 22   60,34%  (5952/9863)

Avevo detto che su Node 22 qualcosa non veniva eseguito. Sbagliato, e l'ho
verificato leggendo i registri di entrambi i job: 16 test passati, 0 falliti,
0 saltati, su tutte e due. Gli stessi test, tutti.

La causa e che c8 legge la copertura dal profilo di V8, e il V8 di Node 22
attribuisce le righe in modo diverso da quello di Node 20. Stesso codice,
stessa suite, 429 righe di scarto nel modo di CONTARLE.

Il problema non e quale dei due numeri sia giusto: e che ce ne siano due. Un
numero che dipende da quale job si guarda non si puo confrontare nel tempo, e
la prima volta che qualcuno dice 'la copertura e scesa' nessuno sa se e vero.

Ora i test girano su tutte e due le versioni — la matrice serve a questo — e la
copertura si misura SOLO su Node 20, che e la versione del Dockerfile
(node:20-alpine), cioe quella che gira davvero in produzione.

Quindi da adesso il numero di riferimento e 64,69%, e il bersaglio dell'80%
si misura da li.

Session-Id: 75828d
@Alessandro114
Alessandro114 deleted the misura/copertura-una-sola-versione branch August 31, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant