Eight parallel processes, and one test group that writes to a fixed path on disk.
#[Group('serial')]
final class ExportFileTest extends TestCase
{
// writes to storage/app/exports/monthly.csv, which
// is a fixed path in the application's own config
}
// and the pipeline:
// vendor/bin/paratest --exclude-group=serial
// vendor/bin/phpunit --group=serial
Two runs — parallel for everything and serial for the exceptions — is more honest than making the fixture parallel-safe, because the fixed path is a property of the application rather than of the test. Eleven tests in the serial group take fourteen seconds, which is a rounding error against the ninety.