Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Bug]: [macOS] php 8.5 & phpunit process isolation gives serialisation error

Aperta
#1,674 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
macos, php

Direzione di ricerca

Inizia con la riproduzione fornita in Tests\Unit\ExampleTest su macOS Tahoe con Herd 1.28.0, PHP 8.5.4 e PHPUnit 12.5.16; confronta il comportamento con PreserveGlobalState(true) e senza. Il lavoro è completato quando i test isolati per processo preservano lo stato globale rilevante senza l'avviso di serializzazione di __herd_closure.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

macOS
Platform

macOS

Operating system version

macOs Tahoe 26.3.1

System architecture

ARM64 (M1, M2, etc)

Herd Version

1.28.0

PHP Version

PHP 8.5.4

Bug description

With phpunit 12.5.16 and Herd 1.28.0

Tests that have:

#[RunTestsInSeparateProcesses]
#[PreserveGlobalState(true)]

Give this warning: Global variable $GLOBALS['__herd_closure'] was not preserved because it is a Closure.

When i remove #[PreserveGlobalState(true)] it will work without problems.

Steps to reproduce
<?php

namespace Tests\Unit;

use PHPUnit\Framework\Attributes\PreserveGlobalState;
use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
use PHPUnit\Framework\TestCase;

#[RunTestsInSeparateProcesses]
#[PreserveGlobalState(true)]
class ExampleTest extends TestCase
{
    public function test_that_true_is_true(): void
    {
        $this->assertTrue(true);
    }
}

Gives:

   WARN  Tests\Unit\ExampleTest
  ! that true is true → Global variable $GLOBALS['__herd_closure'] was not preserved because it is a Closure
Relevant log output

Lingua principale
Nessun dato sulla lingua
Stelle
123
Fork
1
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di beyondcode/herd-community

Tutte le issue di beyondcode/herd-community

Issue simili

Altre issue su Operating Systems

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.