Upgrading pestphp/pest 4 to 5
Unknownv4.7.8 → v5.3.4Security1New7Changed3Fixed26Other6
UnknownUpgrade verdict
1 of 17 releases publish no notes, so breaking changes can't be ruled out.
In plain terms
- Some releases in this range publish no notes, so DepDelta can't rule out breaking changes.
- Their commits are listed with this comparison.
Must act 1 item needs code or config changes
PHP requirement changed in v5.0.0: ^8.3.0 → ^8.4.
What you must change
Security1
Bumps PHPUnit to 13.4.5 to address GHSA-9vw2-f4vp-x7gf.
PHPUnitAPI changes
Generated by DepDelta from published PHP source. Not mixed with prose notes.
- added:
const Kernel.RESTARTERS: array - added:
method Configuration.evals(): Evals\Configuration - added:
method Configuration.tia(): Plugins\Tia\Configuration
- added:
final class BootPhpUnitConfiguration implements Bootstrapper - added:
method BootPhpUnitConfiguration.boot(): void
- added:
interface Restarter - added:
method Restarter.maybeRestart(string $projectRoot, array $arguments): void
- added:
constructor BaselineFetchFailed(string $headline, string $hint, bool $hasAnchor = …) - added:
constructor TiaRequiresCommit() - added:
constructor TiaRequiresDefaultBranch() - added:
constructor TiaRequiresPestTests(string $className, string $filename) - added:
constructor TiaRequiresRemote() - added:
constructor TiaRequiresRepositoryRoot(string $subdirectoryPrefix) - added:
final class BaselineFetchFailed extends RuntimeException implements ExceptionInterface, Panicable, RenderlessEditor, RenderlessTrace - added:
final class InvalidTestClassName extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace - added:
final class NoAffectedTestsFound extends InvalidArgumentException implements ExceptionInterface, Panicable, RenderlessEditor, RenderlessTrace - added:
final class TiaRequiresCommit extends RuntimeException implements ExceptionInterface, Panicable, RenderlessEditor, RenderlessTrace - added:
final class TiaRequiresDefaultBranch extends RuntimeException implements ExceptionInterface, Panicable, RenderlessEditor, RenderlessTrace - added:
final class TiaRequiresPestTests extends RuntimeException implements ExceptionInterface, Panicable, RenderlessEditor, RenderlessTrace - added:
final class TiaRequiresRemote extends RuntimeException implements ExceptionInterface, Panicable, RenderlessEditor, RenderlessTrace - added:
final class TiaRequiresRepositoryRoot extends RuntimeException implements ExceptionInterface, Panicable, RenderlessEditor, RenderlessTrace - added:
method BaselineFetchFailed.exitCode(): int - added:
method BaselineFetchFailed.render(OutputInterface $output): void - added:
method NoAffectedTestsFound.exitCode(): int - added:
method NoAffectedTestsFound.render(OutputInterface $output): void - added:
method TiaRequiresCommit.exitCode(): int - added:
method TiaRequiresCommit.render(OutputInterface $output): void - added:
method TiaRequiresDefaultBranch.exitCode(): int - added:
method TiaRequiresDefaultBranch.render(OutputInterface $output): void - added:
method TiaRequiresPestTests.exitCode(): int - added:
method TiaRequiresPestTests.render(OutputInterface $output): void - added:
method TiaRequiresRemote.exitCode(): int - added:
method TiaRequiresRemote.render(OutputInterface $output): void - added:
method TiaRequiresRepositoryRoot.exitCode(): int - added:
method TiaRequiresRepositoryRoot.render(OutputInterface $output): void - added:
static method InvalidTestClassName.fromClassName(string $filename, string $className): self - added:
static method InvalidTestClassName.fromNamespace(string $filename, string $namespace, string $part): self
- changed:
method Expectation.toMatchSnapshot(string $message = …): self → method Expectation.toMatchSnapshot(string $message = …, ?string $as = …): self - added:
method Expectation.toBeBase64(string $message = …): self - added:
method Expectation.toBeDomain(string $message = …): self - added:
method Expectation.toBeEmail(string $message = …): self - added:
method Expectation.toBeHexadecimal(string $message = …): self - added:
method Expectation.toBeHostname(string $message = …): self - added:
method Expectation.toBeIpAddress(string $message = …): self - added:
method Expectation.toBeMacAddress(string $message = …): self - added:
method Expectation.toBeUlid(string $message = …): self
- added:
method TestCall.coversNothing(): self
- added:
const Tia.KEY_AFFECTED: string - added:
const Tia.KEY_COVERAGE_CACHE: string - added:
const Tia.KEY_COVERAGE_MARKER: string - added:
const Tia.KEY_FETCH_COOLDOWN: string - added:
const Tia.KEY_GRAPH: string - added:
constructor Tia(OutputInterface $output, Recorder $recorder, CoverageCollector $coverageCollector, WatchPatterns $watchPatterns, State $state, BaselineSync $baselineSync) - added:
final class Tia implements AddsOutput, HandlesArguments, HandlesOriginalArguments, Terminable - added:
method Tia.addOutput(int $exitCode): int - added:
method Tia.getAssertionCount(string $testId): int - added:
method Tia.getStatus(string $filename, string $testId): ?TestStatus - added:
method Tia.handleArguments(array $arguments): array - added:
method Tia.handleOriginalArguments(array $arguments): void - added:
method Tia.terminate(): void - added:
static method Snapshot.shouldCreateMissingSnapshots(): bool - added:
static method Tia.isEnabledForRun(array $arguments): bool - added:
static method Tia.isMutationRun(array $arguments): bool - added:
static method Tia.recordsEdgesInWorkers(): bool
- added:
const Graph.WORKSPACE_BRANCH_PREFIX: string - added:
const JsModuleGraph.VITE_CONFIG_NAMES: array - added:
constructor BaselineSync(State $state, OutputInterface $output, WatchPatterns $watchPatterns) - added:
constructor Bootstrapper(Container $container) - added:
constructor ChangedFiles(string $projectRoot) - added:
constructor FileState(string $rootDir) - added:
constructor Graph(string $projectRoot) - added:
constructor SourceScope(array $includes, array $excludes) - added:
constructor TestPaths(array $directories, array $files, array $suffixes) - added:
final class CiBranch - added:
final class Collectors - added:
final class Configuration - added:
final class ContentHash - added:
final class CoverageCollector - added:
final class CoverageMerger - added:
final class Graph - added:
final class JsModuleGraph - added:
final class Recorder - added:
final class ResultCollector - added:
final class SourceScope - added:
final class Storage - added:
final class TableExtractor - added:
final class TableTracker - added:
final class WatchPatterns - added:
final readonly class BaselineSync - added:
final readonly class Bootstrapper implements BootstrapperContract - added:
final readonly class ChangedFiles - added:
final readonly class FileState implements State - added:
final readonly class Fingerprint - added:
final readonly class TestPaths - added:
method BaselineSync.fetchIfAvailable(string $projectRoot, bool $force = …, bool $hasAnchor = …): bool - added:
method Bootstrapper.boot(): void - added:
method ChangedFiles.branchNames(): ?array - added:
method ChangedFiles.currentBranch(): ?string - added:
method ChangedFiles.currentSha(): ?string - added:
method ChangedFiles.defaultBranch(): ?string - added:
method ChangedFiles.filterUnchangedSinceLastRun(array $files, array $lastRunTree): array - added:
method ChangedFiles.hasCommits(): bool - added:
method ChangedFiles.hasRemote(): bool - added:
method ChangedFiles.isRepository(): bool - added:
method ChangedFiles.since(?string $sha): ?array - added:
method ChangedFiles.snapshotTree(array $files): array - added:
method Configuration.always(): self - added:
method Configuration.baselined(?string $workflow = …, ?string $job = …): self - added:
method Configuration.defaultBranch(string $branch): self - added:
method Configuration.directory(string $directory): self - added:
method Configuration.filtered(): self - added:
method Configuration.locally(): self - added:
method Configuration.watch(array $patterns): self - added:
method CoverageCollector.perTestFiles(): array - added:
method CoverageCollector.reset(): void - added:
method FileState.delete(string $key): bool - added:
method FileState.exists(string $key): bool - added:
method FileState.keysWithPrefix(string $prefix): array - added:
method FileState.pathFor(string $key): string - added:
method FileState.read(string $key): ?string - added:
method FileState.write(string $key, string $content): bool - added:
method Graph.affected(array $changedFiles): array - added:
method Graph.allTestFiles(): array - added:
method Graph.clearResults(string $branch): void - added:
method Graph.encode(): ?string - added:
method Graph.fingerprint(): array - added:
method Graph.getAssertions(string $branch, string $testId, ?string $fallbackBranch = …): ?int - added:
method Graph.getResult(string $branch, string $testId, ?string $fallbackBranch = …): ?TestStatus - added:
method Graph.getTime(string $branch, string $testId, ?string $fallbackBranch = …): ?float - added:
method Graph.hasUnlocatedTestsToRerun(string $branch, ?string $fallbackBranch = …): bool - added:
method Graph.knowsTest(string $testFile): bool - added:
method Graph.lastRunTree(string $branch, ?string $fallbackBranch = …): array - added:
method Graph.link(string $testFile, string $sourceFile): void - added:
method Graph.markBaselineComplete(string $branch): void - added:
method Graph.markKnownTestFiles(array $testFiles): void - added:
method Graph.pruneMissingBranches(array $keep): void - added:
method Graph.pruneMissingTests(): void - added:
method Graph.pruneResultsForMissingFiles(string $branch): void - added:
method Graph.pruneStaleResults(string $branch, array $touchedFiles, array $keepTestIds): void - added:
method Graph.recordedAtSha(string $branch, ?string $fallbackBranch = …): ?string - added:
method Graph.replaceEdges(array $testToFiles, bool $keepExisting = …): void - added:
method Graph.replaceJsFileToComponents(array $fileToComponents): void - added:
method Graph.replaceTestInertiaComponents(array $testToComponents): void - added:
method Graph.replaceTestTables(array $testToTables): void - added:
method Graph.setFallbackBranch(string $branch): void - added:
method Graph.setFingerprint(array $fingerprint): void - added:
method Graph.setLastRunTree(string $branch, array $tree): void - added:
method Graph.setRecordedAtSha(string $branch, ?string $sha): void - added:
method Graph.setResult(string $branch, string $testId, int $status, string $message, float $time, int $assertions = …, ?string $file = …): void - added:
method Graph.shouldRerunStatus(TestStatus $testStatus): bool - added:
method Graph.testFilesOnDisk(array $testFiles): array - added:
method Graph.testFilesToRerun(string $branch, ?string $fallbackBranch = …): array - added:
method Recorder.activate(): void - added:
method Recorder.activateLinkTracking(): void - added:
method Recorder.beginTest(string $className, string $methodName, string $fallbackFile): void - added:
method Recorder.driverAvailable(): bool - added:
method Recorder.endTest(): void - added:
method Recorder.isActive(): bool - added:
method Recorder.linkInertiaComponent(string $component): void - added:
method Recorder.linkSource(string $sourceFile): void - added:
method Recorder.linkTable(string $table): void - added:
method Recorder.perTestFiles(): array - added:
method Recorder.perTestInertiaComponents(): array - added:
method Recorder.perTestTables(): array - added:
method Recorder.perTestUsesDatabase(): array - added:
method Recorder.reset(): void - added:
method ResultCollector.all(): array - added:
method ResultCollector.finishTest(): void - added:
method ResultCollector.hasUnfinishedTest(): bool - added:
method ResultCollector.merge(array $results): void - added:
method ResultCollector.recordAssertions(string $testId, int $assertions): void - added:
method ResultCollector.reset(): void - added:
method ResultCollector.testErrored(string $message): void - added:
method ResultCollector.testFailed(string $message): void - added:
method ResultCollector.testIncomplete(string $message): void - added:
method ResultCollector.testPassed(): void - added:
method ResultCollector.testPrepared(string $testId, ?string $testFile = …): void - added:
method ResultCollector.testRisky(string $message): void - added:
method ResultCollector.testSkipped(string $message): void - added:
method ResultCollector.testTriggeredDeprecation(string $message): void - added:
method ResultCollector.testTriggeredNotice(string $message): void - added:
method ResultCollector.testTriggeredWarning(string $message): void - added:
method SourceScope.contains(string $absoluteFile): bool - added:
method TestPaths.isTestFile(string $relativePath): bool - added:
method WatchPatterns.add(array $patterns): void - added:
method WatchPatterns.baselineJob(): ?string - added:
method WatchPatterns.baselineWorkflow(): ?string - added:
method WatchPatterns.defaultBranch(): ?string - added:
method WatchPatterns.isBaselined(): bool - added:
method WatchPatterns.isEnabled(): bool - added:
method WatchPatterns.isFiltered(): bool - added:
method WatchPatterns.isLocally(): bool - added:
method WatchPatterns.markBaselined(): void - added:
method WatchPatterns.markEnabled(): void - added:
method WatchPatterns.markFiltered(): void - added:
method WatchPatterns.markLocally(): void - added:
method WatchPatterns.matchedDirectories(string $projectRoot, array $changedFiles): array - added:
method WatchPatterns.reset(): void - added:
method WatchPatterns.setBaselineJob(string $job): void - added:
method WatchPatterns.setBaselineWorkflow(string $workflow): void - added:
method WatchPatterns.setDefaultBranch(string $branch): void - added:
method WatchPatterns.testsUnderDirectories(array $directories, array $allTestFiles): array - added:
method WatchPatterns.useDefaults(string $projectRoot): void - added:
static method CiBranch.detectCurrent(): ?string - added:
static method CiBranch.detectDefault(): ?string - added:
static method Collectors.armAll(Recorder $recorder): void - added:
static method ContentHash.of(string $absolute): string|false - added:
static method ContentHash.ofContent(string $path, string $raw): string - added:
static method CoverageMerger.applyIfMarked(string $reportPath): void - added:
static method Fingerprint.compute(string $projectRoot): array - added:
static method Fingerprint.environmentalDrift(array $stored, array $current): array - added:
static method Fingerprint.structuralDrift(array $stored, array $current): array - added:
static method Fingerprint.structuralMatches(array $a, array $b): bool - added:
static method Graph.branchesIn(string $json): array - added:
static method Graph.decode(string $json, string $projectRoot): ?self - added:
static method JsModuleGraph.build(string $projectRoot): array - added:
static method JsModuleGraph.buildStrict(string $projectRoot): ?array - added:
static method JsModuleGraph.isApplicable(string $projectRoot): bool - added:
static method SourceScope.fromProjectRoot(string $projectRoot): self - added:
static method SourceScope.testPaths(): array - added:
static method Storage.purge(string $projectRoot): void - added:
static method Storage.tempDir(string $projectRoot): string - added:
static method Storage.useDirectory(?string $directory): void - added:
static method TableExtractor.fromMigrationSource(string $php): array - added:
static method TableExtractor.fromSql(string $sql): array - added:
static method TableTracker.arm(Recorder $recorder): void - added:
static method TestPaths.fromProjectRoot(string $projectRoot): self
- added:
abstract readonly class BaseRemote - added:
constructor BaseRemote(WatchPatterns $watchPatterns) - added:
final readonly class GitHubRemote extends BaseRemote - added:
final readonly class GitLabRemote extends BaseRemote - added:
method BaseRemote.artifactSize(string $repo, string $runId): ?int - added:
method BaseRemote.classifyError(string $output): array - added:
method BaseRemote.cliAuthenticated(): bool - added:
method BaseRemote.cliExists(): bool - added:
method BaseRemote.cliName(): string - added:
method BaseRemote.detect(string $projectRoot): ?string - added:
method BaseRemote.downloadCommand(string $repo, string $runId, string $destDir): array - added:
method BaseRemote.installUrl(): string - added:
method BaseRemote.latestSuccessfulRunId(string $repo): array - added:
method BaseRemote.loginCommand(): string - added:
method BaseRemote.providerLabel(): string - added:
method GitHubRemote.artifactSize(string $repo, string $runId): ?int - added:
method GitHubRemote.cliName(): string - added:
method GitHubRemote.detect(string $projectRoot): ?string - added:
method GitHubRemote.downloadCommand(string $repo, string $runId, string $destDir): array - added:
method GitHubRemote.installUrl(): string - added:
method GitHubRemote.latestSuccessfulRunId(string $repo): array - added:
method GitHubRemote.loginCommand(): string - added:
method GitHubRemote.providerLabel(): string - added:
method GitLabRemote.artifactSize(string $repo, string $runId): ?int - added:
method GitLabRemote.cliName(): string - added:
method GitLabRemote.detect(string $projectRoot): ?string - added:
method GitLabRemote.downloadCommand(string $repo, string $runId, string $destDir): array - added:
method GitLabRemote.installUrl(): string - added:
method GitLabRemote.latestSuccessfulRunId(string $repo): array - added:
method GitLabRemote.loginCommand(): string - added:
method GitLabRemote.providerLabel(): string - added:
protected method BaseRemote.diagnoses(): array - added:
protected method BaseRemote.parseRemoteUrl(string $url): ?array - added:
protected method BaseRemote.readOriginUrl(string $projectRoot): ?string - added:
protected method BaseRemote.remoteDefaultBranch(string $repo): ?string - added:
protected method BaseRemote.resolveDefaultBranch(string $repo): string - added:
protected method GitHubRemote.diagnoses(): array - added:
protected method GitHubRemote.remoteDefaultBranch(string $repo): ?string - added:
protected method GitLabRemote.diagnoses(): array - added:
protected method GitLabRemote.remoteDefaultBranch(string $repo): ?string - added:
protected property BaseRemote.watchPatterns: WatchPatterns
- added:
final readonly class GitHub implements Ci - added:
final readonly class GitLab implements Ci - added:
method GitHub.currentBranch(): ?string - added:
method GitHub.defaultBranch(): ?string - added:
method GitLab.currentBranch(): ?string - added:
method GitLab.defaultBranch(): ?string
- added:
trait ReadsEnvironment
- added:
interface Ci - added:
interface Lockfile - added:
interface State - added:
interface WatchDefault - added:
method Ci.currentBranch(): ?string - added:
method Ci.defaultBranch(): ?string - added:
method Lockfile.applies(string $filename): bool - added:
method Lockfile.fingerprint(string $contents): ?string - added:
method State.delete(string $key): bool - added:
method State.exists(string $key): bool - added:
method State.keysWithPrefix(string $prefix): array - added:
method State.read(string $key): ?string - added:
method State.write(string $key, string $content): bool - added:
method WatchDefault.applicable(): bool - added:
method WatchDefault.defaults(string $projectRoot, string $testPath): array
- added:
final class BladeEdges - added:
final class InertiaEdges - added:
static method BladeEdges.arm(Recorder $recorder): void - added:
static method InertiaEdges.arm(Recorder $recorder): void
- added:
enum ReplayType - added:
member ReplayType.Failure - added:
member ReplayType.Incomplete - added:
member ReplayType.None - added:
member ReplayType.Pass - added:
member ReplayType.Risky - added:
member ReplayType.Skipped - added:
static method ReplayType.fromStatus(?TestStatus $status): self
- added:
final readonly class PackageLock implements Lockfile - added:
method PackageLock.applies(string $filename): bool - added:
method PackageLock.fingerprint(string $contents): ?string
- added:
final readonly class Browser implements WatchDefault - added:
final readonly class Inertia implements WatchDefault - added:
final readonly class Laravel implements WatchDefault - added:
final readonly class Livewire implements WatchDefault - added:
final readonly class Php implements WatchDefault - added:
final readonly class Symfony implements WatchDefault - added:
method Browser.applicable(): bool - added:
method Browser.defaults(string $projectRoot, string $testPath): array - added:
method Inertia.applicable(): bool - added:
method Inertia.defaults(string $projectRoot, string $testPath): array - added:
method Laravel.applicable(): bool - added:
method Laravel.defaults(string $projectRoot, string $testPath): array - added:
method Livewire.applicable(): bool - added:
method Livewire.defaults(string $projectRoot, string $testPath): array - added:
method Php.applicable(): bool - added:
method Php.defaults(string $projectRoot, string $testPath): array - added:
method Symfony.applicable(): bool - added:
method Symfony.defaults(string $projectRoot, string $testPath): array - added:
static method Browser.detectBrowserTestTargets(string $projectRoot, string $testPath): array
- added:
constructor Snapshot(string $filename, string $basePath) - added:
final readonly class Snapshot - added:
method Snapshot.exists(): bool - added:
method Snapshot.matches(string $value): bool - added:
method Snapshot.normalize(string $value): string - added:
method Snapshot.path(): string - added:
method Snapshot.read(): string - added:
method Snapshot.write(string $contents): self - added:
method SnapshotRepository.current(): Snapshot - added:
method SnapshotRepository.filename(): string - added:
method SnapshotRepository.forget(): void - added:
method SnapshotRepository.named(string $name): Snapshot - added:
method SnapshotRepository.next(): Snapshot
- added:
final class PcovRestarter implements Restarter - added:
final class XdebugRestarter implements Restarter - added:
method PcovRestarter.maybeRestart(string $projectRoot, array $arguments): void - added:
method XdebugRestarter.maybeRestart(string $projectRoot, array $arguments): void
- added:
constructor EnsureTiaAssertionsAreRecordedOnFinished(ResultCollector $collector) - added:
constructor EnsureTiaEnds(Recorder $recorder) - added:
constructor EnsureTiaIsRunningPestTestsOnly(Recorder $recorder) - added:
constructor EnsureTiaResultIsRecordedOnDeprecationTriggered(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnErrored(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnFailed(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnIncomplete(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnNoticeTriggered(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnPassed(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnPhpDeprecationTriggered(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnPhpNoticeTriggered(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnPhpWarningTriggered(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnRisky(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnSkipped(ResultCollector $collector) - added:
constructor EnsureTiaResultIsRecordedOnWarningTriggered(ResultCollector $collector) - added:
constructor EnsureTiaResultsAreCollected(ResultCollector $collector) - added:
constructor EnsureTiaStarts(Recorder $recorder) - added:
final readonly class EnsureTiaAssertionsAreRecordedOnFinished implements FinishedSubscriber - added:
final readonly class EnsureTiaEnds implements FinishedSubscriber - added:
final readonly class EnsureTiaIsRunningPestTestsOnly implements PreparedSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnDeprecationTriggered implements DeprecationTriggeredSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnErrored implements ErroredSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnFailed implements FailedSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnIncomplete implements MarkedIncompleteSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnNoticeTriggered implements NoticeTriggeredSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnPassed implements PassedSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnPhpDeprecationTriggered implements PhpDeprecationTriggeredSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnPhpNoticeTriggered implements PhpNoticeTriggeredSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnPhpWarningTriggered implements PhpWarningTriggeredSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnRisky implements ConsideredRiskySubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnSkipped implements SkippedSubscriber - added:
final readonly class EnsureTiaResultIsRecordedOnWarningTriggered implements WarningTriggeredSubscriber - added:
final readonly class EnsureTiaResultsAreCollected implements PreparationStartedSubscriber - added:
final readonly class EnsureTiaStarts implements PreparedSubscriber - added:
method EnsureTiaAssertionsAreRecordedOnFinished.notify(Finished $event): void - added:
method EnsureTiaEnds.notify(Finished $event): void - added:
method EnsureTiaIsRunningPestTestsOnly.notify(Prepared $event): void - added:
method EnsureTiaResultIsRecordedOnDeprecationTriggered.notify(DeprecationTriggered $event): void - added:
method EnsureTiaResultIsRecordedOnErrored.notify(Errored $event): void - added:
method EnsureTiaResultIsRecordedOnFailed.notify(Failed $event): void - added:
method EnsureTiaResultIsRecordedOnIncomplete.notify(MarkedIncomplete $event): void - added:
method EnsureTiaResultIsRecordedOnNoticeTriggered.notify(NoticeTriggered $event): void - added:
method EnsureTiaResultIsRecordedOnPassed.notify(Passed $event): void - added:
method EnsureTiaResultIsRecordedOnPhpDeprecationTriggered.notify(PhpDeprecationTriggered $event): void - added:
method EnsureTiaResultIsRecordedOnPhpNoticeTriggered.notify(PhpNoticeTriggered $event): void - added:
method EnsureTiaResultIsRecordedOnPhpWarningTriggered.notify(PhpWarningTriggered $event): void - added:
method EnsureTiaResultIsRecordedOnRisky.notify(ConsideredRisky $event): void - added:
method EnsureTiaResultIsRecordedOnSkipped.notify(Skipped $event): void - added:
method EnsureTiaResultIsRecordedOnWarningTriggered.notify(WarningTriggered $event): void - added:
method EnsureTiaResultsAreCollected.notify(PreparationStarted $event): void - added:
method EnsureTiaStarts.notify(Prepared $event): void
- added:
constructor Git(?string $directory = …, float $timeout = …) - added:
final class Ci - added:
final readonly class Git - added:
method Exporter.export(mixed $value): string - added:
method Git.hasCommits(): bool - added:
method Git.hasRef(string $ref): bool - added:
method Git.hasRemote(): bool - added:
method Git.isRepository(): bool - added:
method Git.output(array $arguments): ?string - added:
method Git.raw(array $arguments): ?string - added:
method Git.result(array $arguments, ?string $input = …): array - added:
method Git.show(string $sha, string $path): ?string - added:
method Git.subdirectoryPrefix(): ?string - added:
method Git.succeeds(array $arguments): bool - added:
method Git.withTimeout(float $timeout): self - added:
static method Ci.isRunning(): bool - added:
static method Str.isEmail(string $value): bool - added:
static method Str.isUlid(string $value): bool - added:
static method Str.isValidClassName(string $name): bool - added:
static method Str.isValidIdentifier(string $name): bool
- added:
constructor TiaTestCaseFilter(string $projectRoot, Graph $graph, array $affectedTestFiles) - added:
final readonly class TiaTestCaseFilter implements TestCaseFilter - added:
method TiaTestCaseFilter.accept(string $testCaseFilename): bool