Skip to content

Upgrading pestphp/pest 1 to 2

Unknownv1.23.1 → v2.36.1Security1New41Changed8Fixed38Other15

UnknownUpgrade verdict

8 of 92 releases publish no notes, so breaking changes can't be ruled out.

  • Some releases in this range publish no notes, so DepDelta can't rule out breaking changes.
  • Their commits are listed with this comparison.
1 item needs code or config changes

PHP requirement changed in v2.36.1: ^7.3 || ^8.0 → ^8.2.0.

Security1
Security issue found in PHPUnit / https://github.com/sebastianbergmann/phpunit/security/advisories/GHSA-vvj3-c3rp-c85p.

Generated by DepDelta from published PHP source. Not mixed with prose notes.

  • removed: constructor Each(Expectation $original)
  • removed: constructor HigherOrderExpectation(Expectation $original, $value)
  • removed: constructor OppositeExpectation(Expectation $original)
  • removed: final class Datasets
  • removed: final class Each
  • removed: final class HigherOrderExpectation
  • removed: final class OppositeExpectation
  • removed: method Each.__call(string $name, array $arguments): Each
  • removed: method Each.__get(string $name): Each
  • removed: method Each.and($value): Expectation
  • removed: method Each.not(): Each
  • removed: method Expectation.toBe($expected): Expectation
  • removed: method Expectation.toBeArray(): Expectation
  • removed: method Expectation.toBeBool(): Expectation
  • removed: method Expectation.toBeCallable(): Expectation
  • removed: method Expectation.toBeDirectory(): Expectation
  • removed: method Expectation.toBeEmpty(): Expectation
  • removed: method Expectation.toBeFalse(): Expectation
  • removed: method Expectation.toBeFalsy(): Expectation
  • removed: method Expectation.toBeFile(): Expectation
  • removed: method Expectation.toBeFloat(): Expectation
  • removed: method Expectation.toBeGreaterThan($expected): Expectation
  • removed: method Expectation.toBeGreaterThanOrEqual($expected): Expectation
  • removed: method Expectation.toBeIn(iterable $values): Expectation
  • removed: method Expectation.toBeInfinite(): Expectation
  • removed: method Expectation.toBeInstanceOf($class): Expectation
  • removed: method Expectation.toBeInt(): Expectation
  • removed: method Expectation.toBeIterable(): Expectation
  • removed: method Expectation.toBeJson(): Expectation
  • removed: method Expectation.toBeLessThan($expected): Expectation
  • removed: method Expectation.toBeLessThanOrEqual($expected): Expectation
  • removed: method Expectation.toBeNan(): Expectation
  • removed: method Expectation.toBeNull(): Expectation
  • removed: method Expectation.toBeNumeric(): Expectation
  • removed: method Expectation.toBeObject(): Expectation
  • removed: method Expectation.toBeReadableDirectory(): Expectation
  • removed: method Expectation.toBeReadableFile(): Expectation
  • removed: method Expectation.toBeResource(): Expectation
  • removed: method Expectation.toBeScalar(): Expectation
  • removed: method Expectation.toBeString(): Expectation
  • removed: method Expectation.toBeTrue(): Expectation
  • removed: method Expectation.toBeTruthy(): Expectation
  • removed: method Expectation.toBeWritableDirectory(): Expectation
  • removed: method Expectation.toBeWritableFile(): Expectation
  • removed: method Expectation.toContain(...$needles): Expectation
  • removed: method Expectation.toEndWith(string $expected): Expectation
  • removed: method Expectation.toEqual($expected): Expectation
  • removed: method Expectation.toEqualCanonicalizing($expected): Expectation
  • removed: method Expectation.toEqualWithDelta($expected, float $delta): Expectation
  • removed: method Expectation.toHaveCount(int $count): Expectation
  • removed: method Expectation.toHaveKey($key, $value = …): Expectation
  • removed: method Expectation.toHaveKeys(array $keys): Expectation
  • removed: method Expectation.toHaveLength(int $number): Expectation
  • removed: method Expectation.toHaveProperties(iterable $names): Expectation
  • removed: method Expectation.toHaveProperty(string $name, $value = …): Expectation
  • removed: method Expectation.toMatch(string $expression): Expectation
  • removed: method Expectation.toMatchArray($array): Expectation
  • removed: method Expectation.toMatchConstraint(Constraint $constraint): Expectation
  • removed: method Expectation.toMatchObject($object): Expectation
  • removed: method Expectation.toStartWith(string $expected): Expectation
  • removed: method Expectation.toThrow($exception, string $exceptionMessage = …): Expectation
  • removed: method HigherOrderExpectation.__call(string $name, array $arguments): self
  • removed: method HigherOrderExpectation.__get(string $name): self
  • removed: method HigherOrderExpectation.and($value): Expectation
  • removed: method HigherOrderExpectation.not(): HigherOrderExpectation
  • removed: method OppositeExpectation.__call(string $name, array $arguments): Expectation
  • removed: method OppositeExpectation.__get(string $name): Expectation
  • removed: method OppositeExpectation.toHaveKeys(array $keys): Expectation
  • removed: static method Datasets.get(string $name)
  • removed: static method Datasets.resolve(string $description, array $datasets): array
  • removed: static method Datasets.set(string $name, $data): void
  • changed: constructor Expectation($value) → constructor Expectation(mixed $value)
  • changed: method Expectation.__call(string $method, array $parameters) → method Expectation.__call(string $method, array $parameters): Expectation|HigherOrderExpectation|PendingArchExpectation
  • changed: method Expectation.and($value): Expectation → method Expectation.and(mixed $value): Expectation
  • changed: method Expectation.dd(...$arguments): void → method Expectation.dd(mixed ...$arguments): void
  • changed: method Expectation.each(callable $callback = …): Each → method Expectation.each(?callable $callback = …): EachExpectation
  • changed: method Expectation.match($subject, array $expressions): Expectation → method Expectation.match(mixed $subject, array $expressions): self
  • changed: method Expectation.ray(...$arguments): self → method Expectation.ray(mixed ...$arguments): self
  • changed: method Expectation.sequence(...$callbacks): Expectation → method Expectation.sequence(mixed ...$callbacks): self
  • changed: method Expectation.unless($condition, callable $callback): Expectation → method Expectation.unless(callable|bool $condition, callable $callback): Expectation
  • changed: method Expectation.when($condition, callable $callback): Expectation → method Expectation.when(callable|bool $condition, callable $callback): self
  • changed: property Expectation.value → property Expectation.value: mixed
  • changed: property TestSuite.afterAll → property TestSuite.afterAll: AfterAllRepository
  • changed: property TestSuite.afterEach → property TestSuite.afterEach: AfterEachRepository
  • changed: property TestSuite.beforeAll → property TestSuite.beforeAll: BeforeAllRepository
  • changed: property TestSuite.beforeEach → property TestSuite.beforeEach: BeforeEachRepository
  • changed: property TestSuite.rootPath → property TestSuite.rootPath: string
  • changed: property TestSuite.test → property TestSuite.test: ?TestCase
  • changed: property TestSuite.testPath → property TestSuite.testPath: string
  • changed: property TestSuite.tests → property TestSuite.tests: TestRepository
  • changed: static method TestSuite.getInstance(string $rootPath = …, string $testPath = …): TestSuite → static method TestSuite.getInstance(?string $rootPath = …, ?string $testPath = …): TestSuite
  • changed: static property Plugin.callables → static property Plugin.callables: array
  • added: constructor Kernel(Application $application, OutputInterface $output)
  • added: constructor KernelDump(OutputInterface $output)
  • added: final class Kernel
  • added: final class KernelDump
  • added: final class Panic
  • added: final class Result
  • added: method Expectation.any(): Any
  • added: method Expectation.ddUnless(Closure|bool $condition, mixed ...$arguments): Expectation
  • added: method Expectation.ddWhen(Closure|bool $condition, mixed ...$arguments): Expectation
  • added: method Expectation.dump(mixed ...$arguments): self
  • added: method Expectation.toBeAbstract(): ArchExpectation
  • added: method Expectation.toBeClass(): ArchExpectation
  • added: method Expectation.toBeClasses(): ArchExpectation
  • added: method Expectation.toBeEnum(): ArchExpectation
  • added: method Expectation.toBeEnums(): ArchExpectation
  • added: method Expectation.toBeFinal(): ArchExpectation
  • added: method Expectation.toBeIntBackedEnum(): ArchExpectation
  • added: method Expectation.toBeIntBackedEnums(): ArchExpectation
  • added: method Expectation.toBeInterface(): ArchExpectation
  • added: method Expectation.toBeInterfaces(): ArchExpectation
  • added: method Expectation.toBeInvokable(): ArchExpectation
  • added: method Expectation.toBeReadonly(): ArchExpectation
  • added: method Expectation.toBeStringBackedEnum(): ArchExpectation
  • added: method Expectation.toBeStringBackedEnums(): ArchExpectation
  • added: method Expectation.toBeTrait(): ArchExpectation
  • added: method Expectation.toBeTraits(): ArchExpectation
  • added: method Expectation.toBeUsed(): never
  • added: method Expectation.toBeUsedIn(array|string $targets): ArchExpectation
  • added: method Expectation.toBeUsedInNothing(): ArchExpectation
  • added: method Expectation.toExtend(string $class): ArchExpectation
  • added: method Expectation.toExtendNothing(): ArchExpectation
  • added: method Expectation.toHaveAttribute(string $attribute): ArchExpectation
  • added: method Expectation.toHaveCamelCaseKeys(string $message = …): self
  • added: method Expectation.toHaveConstructor(): ArchExpectation
  • added: method Expectation.toHaveDestructor(): ArchExpectation
  • added: method Expectation.toHaveKebabCaseKeys(string $message = …): self
  • added: method Expectation.toHaveMethod(string $method): ArchExpectation
  • added: method Expectation.toHavePrefix(string $prefix): ArchExpectation
  • added: method Expectation.toHaveSnakeCaseKeys(string $message = …): self
  • added: method Expectation.toHaveStudlyCaseKeys(string $message = …): self
  • added: method Expectation.toHaveSuffix(string $suffix): ArchExpectation
  • added: method Expectation.toImplement(array|string $interfaces): ArchExpectation
  • added: method Expectation.toImplementNothing(): ArchExpectation
  • added: method Expectation.toOnlyBeUsedIn(array|string $targets): ArchExpectation
  • added: method Expectation.toOnlyImplement(array|string $interfaces): ArchExpectation
  • added: method Expectation.toOnlyUse(array|string $targets): ArchExpectation
  • added: method Expectation.toUse(array|string $targets): ArchExpectation
  • added: method Expectation.toUseNothing(): ArchExpectation
  • added: method Expectation.toUseStrictTypes(): ArchExpectation
  • added: method Kernel.handle(array $originalArguments, array $arguments): int
  • added: method Kernel.shutdown(): void
  • added: method Kernel.terminate(): void
  • added: method KernelDump.disable(): void
  • added: method KernelDump.enable(): void
  • added: method KernelDump.terminate(): void
  • added: method TestSuite.getDescription(): string
  • added: method TestSuite.getFilename(): string
  • added: method TestSuite.registerSnapshotChange(string $message): void
  • added: property TestSuite.snapshots: SnapshotRepository
  • added: static method Expectation.hasMethod(string $name): bool
  • added: static method Kernel.boot(TestSuite $testSuite, InputInterface $input, OutputInterface $output): self
  • added: static method Panic.with(Throwable $throwable): never
  • added: static method Result.exitCode(Configuration $configuration, TestResult $result): int
  • added: static method Result.failed(Configuration $configuration, TestResult $result): bool
  • added: static method Result.ok(Configuration $configuration, TestResult $result): bool
  • removed: final class AddsDefaults
  • removed: final class AddsTests
  • removed: final class InteractsWithPlugins
  • removed: final class LoadStructure
  • removed: final class ValidatesConfiguration
  • removed: final class ValidatesEnvironment
  • removed: static method AddsDefaults.to(array $arguments): array
  • removed: static method AddsTests.to(TestSuite $testSuite, \Pest\TestSuite $pestTestSuite): void
  • removed: static method InteractsWithPlugins.addOutput(int $result): int
  • removed: static method InteractsWithPlugins.handleArguments(array $argv): array
  • removed: static method LoadStructure.in(string $rootPath): void
  • removed: static method ValidatesConfiguration.in($arguments): void
  • removed: static method ValidatesEnvironment.in(TestSuite $testSuite): void
  • added: const BootOverrides.FILES
  • added: constructor BootKernelDump(OutputInterface $output)
  • added: constructor BootSubscribers(Container $container)
  • added: constructor BootView(OutputInterface $output)
  • added: final class BootExcludeList implements Bootstrapper
  • added: final class BootFiles implements Bootstrapper
  • added: final class BootKernelDump implements Bootstrapper
  • added: final class BootOverrides implements Bootstrapper
  • added: final class BootSubscribers implements Bootstrapper
  • added: final class BootView implements Bootstrapper
  • added: method BootExcludeList.boot(): void
  • added: method BootFiles.boot(): void
  • added: method BootKernelDump.boot(): void
  • added: method BootOverrides.boot(): void
  • added: method BootSubscribers.boot(): void
  • added: method BootView.boot(): void
  • removed: method Extendable.__call(string $method, array $parameters)
  • removed: method Testable.__test()
  • removed: method Testable.addAfterAll(?Closure $hook): void
  • removed: method Testable.addAfterEach(?Closure $hook): void
  • removed: method Testable.addBeforeAll(?Closure $hook): void
  • removed: method Testable.addBeforeEach(?Closure $hook): void
  • removed: method Testable.addDependencies(array $tests): void
  • removed: method Testable.addGroups(array $groups): void
  • removed: method Testable.getName(bool $withDataSet = …): string
  • removed: method Testable.toString(): string
  • removed: static method Testable.__getFileName(): string
  • removed: trait RetrievesValues
  • changed: constructor Testable(Closure $test, string $description, array $data) → constructor Testable(string $name)
  • changed: method Expectable.expect($value): Expectation → method Expectable.expect(mixed $value): Expectation
  • changed: method Testable.getPrintableTestCaseName(): string → static method Testable.getPrintableTestCaseName(): string
  • changed: static method Extendable.extend(string $name, Closure $extend): void → method Extendable.extend(string $name, Closure $extend): void
  • added: method Pipeable.intercept(string $name, string|Closure $filter, Closure $handler): void
  • added: method Pipeable.pipe(string $name, Closure $pipe): void
  • added: method Testable.__addAfterAll(?Closure $hook): void
  • added: method Testable.__addAfterEach(?Closure $hook): void
  • added: method Testable.__addBeforeAll(?Closure $hook): void
  • added: method Testable.__addBeforeEach(?Closure $hook): void
  • added: method Testable.getPrintableTestCaseMethodName(): string
  • added: property Testable.__describing: ?string
  • added: protected method Testable.__MarkTestIncompleteIfSnapshotHaveChanged(): void
  • added: static method Testable.flush(): void
  • added: static method Testable.getLatestPrintableTestCaseMethodName(): string
  • added: trait Pipeable
  • added: trait Retrievable
  • removed: constructor Command(TestSuite $testSuite, OutputInterface $output)
  • removed: final class Command extends BaseCommand
  • removed: method Command.run(array $argv, bool $exit = …): int
  • removed: protected method Command.createRunner(): TestRunner
  • removed: protected method Command.handleArguments(array $argv): void
  • removed: protected method Command.showHelp(): void
  • changed: constructor Thanks(OutputInterface $output) → constructor Thanks(InputInterface $input, OutputInterface $output)
  • removed: interface HasPrintableTestCaseName extends \NunoMaduro\Collision\Contracts\Adapters\Phpunit\HasPrintableTestCaseName
  • changed: interface HasPrintableTestCaseName → interface HasPrintableTestCaseName extends BaseHasPrintableTestCaseName
  • added: interface AddsAnnotations
  • added: interface Bootstrapper
  • added: interface Panicable
  • added: interface TestCaseFilter
  • added: interface TestCaseMethodFilter
  • added: method AddsAnnotations.__invoke(TestCaseMethodFactory $method, array $annotations): array
  • added: method Bootstrapper.boot(): void
  • added: method Panicable.exitCode(): int
  • added: method Panicable.render(OutputInterface $output): void
  • added: method TestCaseFilter.accept(string $testCaseFilename): bool
  • added: method TestCaseMethodFilter.accept(TestCaseMethodFactory $factory): bool
  • changed: method AddsOutput.addOutput(int $testReturnCode): int → method AddsOutput.addOutput(int $exitCode): int
  • added: interface Bootable
  • added: interface HandlesOriginalArguments
  • added: interface Terminable
  • added: method Bootable.boot(): void
  • added: method HandlesOriginalArguments.handleOriginalArguments(array $arguments): void
  • added: method Terminable.terminate(): void
  • removed: constructor AfterEachAlreadyExist(string $filename)
  • removed: constructor AttributeNotSupportedYet(string $attribute, string $value)
  • removed: constructor BeforeEachAlreadyExist(string $filename)
  • removed: constructor DatasetAlreadyExist(string $name)
  • removed: constructor InvalidConsoleArgument(string $message)
  • removed: final class AfterEachAlreadyExist extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • removed: final class AttributeNotSupportedYet extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • removed: final class BeforeEachAlreadyExist extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • removed: final class DatasetAlreadyExist extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • removed: final class InvalidConsoleArgument extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • changed: constructor DatasetMissing(string $file, string $name, array $args) → constructor DatasetMissing(string $file, string $name, array $arguments)
  • added: constructor AfterAllWithinDescribe(string $filename)
  • added: constructor BeforeAllAlreadyExist(string $filename)
  • added: constructor BeforeAllWithinDescribe(string $filename)
  • added: constructor DatasetAlreadyExists(string $name, string $scope)
  • added: constructor DatasetArgsCountMismatch(int $requiredCount, int $suppliedCount)
  • added: constructor InvalidArgumentException(string $message)
  • added: constructor InvalidOption(string $message)
  • added: constructor TestClosureMustNotBeStatic(TestCaseMethodFactory $method)
  • added: constructor TestDescriptionMissing(string $fileName)
  • added: final class AfterAllWithinDescribe extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: final class BeforeAllAlreadyExist extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: final class BeforeAllWithinDescribe extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: final class DatasetAlreadyExists extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: final class DatasetArgsCountMismatch extends Exception
  • added: final class ExpectationNotFound extends Exception
  • added: final class FatalException extends RuntimeException implements RenderlessTrace
  • added: final class InvalidArgumentException extends BaseInvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: final class InvalidExpectation extends LogicException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: final class InvalidExpectationValue extends InvalidArgumentException
  • added: final class InvalidOption extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: final class NoDirtyTestsFound extends InvalidArgumentException implements ExceptionInterface, Panicable, RenderlessEditor, RenderlessTrace
  • added: final class TestClosureMustNotBeStatic extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: final class TestDescriptionMissing extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
  • added: method NoDirtyTestsFound.exitCode(): int
  • added: method NoDirtyTestsFound.render(OutputInterface $output): void
  • added: static method ExpectationNotFound.fromName(string $name): ExpectationNotFound
  • added: static method InvalidExpectation.fromMethods(array $methods): never
  • added: static method InvalidExpectationValue.expected(string $type): never
  • added: constructor EachExpectation(Expectation $original)
  • added: constructor HigherOrderExpectation(Expectation $original, mixed $value)
  • added: constructor OppositeExpectation(Expectation $original)
  • added: final class EachExpectation
  • added: final class HigherOrderExpectation
  • added: final class OppositeExpectation
  • added: method EachExpectation.__call(string $name, array $arguments): self
  • added: method EachExpectation.__get(string $name): self
  • added: method EachExpectation.and(mixed $value): Expectation
  • added: method EachExpectation.not(): self
  • added: method HigherOrderExpectation.__call(string $name, array $arguments): self
  • added: method HigherOrderExpectation.__get(string $name): self
  • added: method HigherOrderExpectation.and(mixed $value): Expectation
  • added: method HigherOrderExpectation.expect(mixed $value): Expectation
  • added: method HigherOrderExpectation.json(): self
  • added: method HigherOrderExpectation.not(): self
  • added: method HigherOrderExpectation.scoped(Closure $expectation): self
  • added: method OppositeExpectation.__call(string $name, array $arguments): Expectation
  • added: method OppositeExpectation.__get(string $name): Expectation
  • added: method OppositeExpectation.throwExpectationFailedException(string $name, array|string $arguments = …): never
  • added: method OppositeExpectation.toBeAbstract(): ArchExpectation
  • added: method OppositeExpectation.toBeClass(): ArchExpectation
  • added: method OppositeExpectation.toBeClasses(): ArchExpectation
  • added: method OppositeExpectation.toBeEnum(): ArchExpectation
  • added: method OppositeExpectation.toBeEnums(): ArchExpectation
  • added: method OppositeExpectation.toBeFinal(): ArchExpectation
  • added: method OppositeExpectation.toBeIntBackedEnum(): ArchExpectation
  • added: method OppositeExpectation.toBeIntBackedEnums(): ArchExpectation
  • added: method OppositeExpectation.toBeInterface(): ArchExpectation
  • added: method OppositeExpectation.toBeInterfaces(): ArchExpectation
  • added: method OppositeExpectation.toBeInvokable(): ArchExpectation
  • added: method OppositeExpectation.toBeReadonly(): ArchExpectation
  • added: method OppositeExpectation.toBeStringBackedEnum(): ArchExpectation
  • added: method OppositeExpectation.toBeStringBackedEnums(): ArchExpectation
  • added: method OppositeExpectation.toBeTrait(): ArchExpectation
  • added: method OppositeExpectation.toBeTraits(): ArchExpectation
  • added: method OppositeExpectation.toBeUsed(): ArchExpectation
  • added: method OppositeExpectation.toBeUsedIn(array|string $targets): ArchExpectation
  • added: method OppositeExpectation.toBeUsedInNothing(): never
  • added: method OppositeExpectation.toExtend(string $class): ArchExpectation
  • added: method OppositeExpectation.toExtendNothing(): ArchExpectation
  • added: method OppositeExpectation.toHaveAttribute(string $attribute): ArchExpectation
  • added: method OppositeExpectation.toHaveConstructor(): ArchExpectation
  • added: method OppositeExpectation.toHaveDestructor(): ArchExpectation
  • added: method OppositeExpectation.toHaveKeys(array $keys): Expectation
  • added: method OppositeExpectation.toHaveMethod(string $method): ArchExpectation
  • added: method OppositeExpectation.toHavePrefix(string $prefix): ArchExpectation
  • added: method OppositeExpectation.toHaveSuffix(string $suffix): ArchExpectation
  • added: method OppositeExpectation.toImplement(array|string $interfaces): ArchExpectation
  • added: method OppositeExpectation.toImplementNothing(): ArchExpectation
  • added: method OppositeExpectation.toOnlyBeUsedIn(): never
  • added: method OppositeExpectation.toOnlyImplement(array|string $interfaces): never
  • added: method OppositeExpectation.toOnlyUse(array|string $targets): never
  • added: method OppositeExpectation.toUse(array|string $targets): ArchExpectation
  • added: method OppositeExpectation.toUseNothing(): never
  • added: method OppositeExpectation.toUseStrictTypes(): ArchExpectation
  • removed: method TestCaseFactory.build(TestSuite $testSuite): array
  • removed: method TestCaseFactory.makeClassFromFilename(string $filename): string
  • removed: method TestCaseFactory.receivesArguments(): bool
  • removed: property TestCaseFactory.chains
  • removed: property TestCaseFactory.datasets
  • removed: property TestCaseFactory.description
  • removed: property TestCaseFactory.factoryProxies
  • removed: property TestCaseFactory.only
  • removed: property TestCaseFactory.proxies
  • removed: property TestCaseFactory.test
  • changed: constructor TestCaseFactory(string $filename, string $description = …, Closure $closure = …) → constructor TestCaseFactory(string $filename)
  • changed: property TestCaseFactory.class → property TestCaseFactory.class: string
  • changed: property TestCaseFactory.filename → property TestCaseFactory.filename: string
  • changed: property TestCaseFactory.traits → property TestCaseFactory.traits: array
  • added: constructor TestCaseMethodFactory(string $filename, ?string $description, ?Closure $closure)
  • added: final class TestCaseMethodFactory
  • added: method TestCaseFactory.addMethod(TestCaseMethodFactory $method): void
  • added: method TestCaseFactory.evaluate(string $filename, array $methods): void
  • added: method TestCaseFactory.getMethod(string $methodName): TestCaseMethodFactory
  • added: method TestCaseFactory.hasMethod(string $methodName): bool
  • added: method TestCaseFactory.make(): void
  • added: method TestCaseMethodFactory.buildForEvaluation(array $annotationsToUse, array $attributesToUse): string
  • added: method TestCaseMethodFactory.getClosure(TestCase $concrete): Closure
  • added: method TestCaseMethodFactory.receivesArguments(): bool
  • added: property TestCaseFactory.methods: array
  • added: property TestCaseMethodFactory.closure: ?Closure
  • added: property TestCaseMethodFactory.covers: array
  • added: property TestCaseMethodFactory.datasets: array
  • added: property TestCaseMethodFactory.depends: array
  • added: property TestCaseMethodFactory.describing: ?string
  • added: property TestCaseMethodFactory.description: ?string
  • added: property TestCaseMethodFactory.filename: string
  • added: property TestCaseMethodFactory.groups: array
  • added: property TestCaseMethodFactory.repetitions: int
  • added: property TestCaseMethodFactory.todo: bool
  • added: final class CoversNothing implements AddsAnnotations
  • added: final class Depends implements AddsAnnotations
  • added: final class Groups implements AddsAnnotations
  • added: final class TestDox implements AddsAnnotations
  • added: method CoversNothing.__invoke(TestCaseMethodFactory $method, array $annotations): array
  • added: method Depends.__invoke(TestCaseMethodFactory $method, array $annotations): array
  • added: method Groups.__invoke(TestCaseMethodFactory $method, array $annotations): array
  • added: method TestDox.__invoke(TestCaseMethodFactory $method, array $annotations): array
  • added: abstract class Attribute
  • added: final class Covers extends Attribute
  • added: method Attribute.__invoke(TestCaseMethodFactory $method, array $attributes): array
  • added: method Covers.__invoke(TestCaseMethodFactory $method, array $attributes): array
  • added: static property Attribute.above: bool
  • added: static property Covers.above: bool
  • added: property HigherOrderable.chains: HigherOrderMessageCollection
  • added: property HigherOrderable.factoryProxies: HigherOrderMessageCollection
  • added: property HigherOrderable.proxies: HigherOrderMessageCollection
  • added: trait HigherOrderable
  • added: constructor CoversClass(string $class)
  • added: constructor CoversFunction(string $function)
  • added: final class CoversClass
  • added: final class CoversFunction
  • added: final class CoversNothing
  • added: property CoversClass.class: string
  • added: property CoversFunction.function: string
  • removed: final class PestServiceProvider extends ServiceProvider
  • removed: method PestServiceProvider.register(): void
  • removed: final class PestDatasetCommand extends Command
  • removed: final class PestDuskCommand extends DuskCommand
  • removed: final class PestInstallCommand extends Command
  • removed: final class PestTestCommand extends Command
  • removed: method PestDatasetCommand.handle(): void
  • removed: method PestInstallCommand.handle(): void
  • removed: method PestTestCommand.handle(): void
  • removed: protected method PestDuskCommand.binary()
  • removed: protected property PestDatasetCommand.description
  • removed: protected property PestDatasetCommand.signature
  • removed: protected property PestDuskCommand.description
  • removed: protected property PestDuskCommand.signature
  • removed: protected property PestInstallCommand.description
  • removed: protected property PestInstallCommand.signature
  • removed: protected property PestTestCommand.description
  • removed: protected property PestTestCommand.signature
  • removed: constructor JUnit(string $out)
  • removed: constructor TeamCity($out, bool $verbose, string $colors)
  • removed: final class JUnit extends Printer implements TestListener
  • removed: final class TeamCity extends DefaultResultPrinter
  • removed: method JUnit.addError(Test $test, Throwable $t, float $time): void
  • removed: method JUnit.addFailure(Test $test, AssertionFailedError $e, float $time): void
  • removed: method JUnit.addIncompleteTest(Test $test, Throwable $t, float $time): void
  • removed: method JUnit.addRiskyTest(Test $test, Throwable $t, float $time): void
  • removed: method JUnit.addSkippedTest(Test $test, Throwable $t, float $time): void
  • removed: method JUnit.addWarning(Test $test, Warning $e, float $time): void
  • removed: method JUnit.endTest(Test $test, float $time): void
  • removed: method JUnit.endTestSuite(TestSuite $suite): void
  • removed: method JUnit.flush(): void
  • removed: method JUnit.getXML(): string
  • removed: method JUnit.startTest(Test $test): void
  • removed: method JUnit.startTestSuite(TestSuite $suite): void
  • removed: method TeamCity.addError(Test $test, Throwable $t, float $time): void
  • removed: method TeamCity.addFailure(Test $test, AssertionFailedError $e, float $time): void
  • removed: method TeamCity.addIncompleteTest(Test $test, Throwable $t, float $time): void
  • removed: method TeamCity.addRiskyTest(Test $test, Throwable $t, float $time): void
  • removed: method TeamCity.addSkippedTest(Test $test, Throwable $t, float $time): void
  • removed: method TeamCity.addWarning(Test $test, Warning $e, float $time): void
  • removed: method TeamCity.endTest(Test $test, float $time): void
  • removed: method TeamCity.endTestSuite(TestSuite $suite): void
  • removed: method TeamCity.printResult(TestResult $result): void
  • removed: method TeamCity.startTest(Test $test): void
  • removed: method TeamCity.startTestSuite(TestSuite $suite): void
  • removed: static method TeamCity.isPestTest(Test $test): bool
  • added: constructor Converter(string $rootPath)
  • added: final class Converter
  • added: method Converter.getExceptionDetails(Throwable $throwable): string
  • added: method Converter.getExceptionMessage(Throwable $throwable): string
  • added: method Converter.getStackTrace(Throwable $throwable): string
  • added: method Converter.getStateFromResult(PhpUnitTestResult $result): State
  • added: method Converter.getTestCaseLocation(Test $test): string
  • added: method Converter.getTestCaseMethodName(Test $test): string
  • added: method Converter.getTestSuiteLocation(TestSuite $testSuite): ?string
  • added: method Converter.getTestSuiteName(TestSuite $testSuite): string
  • added: method Converter.getTestSuiteSize(TestSuite $testSuite): int
  • added: method Converter.getTrimmedTestClassName(TestMethod $test): string
  • added: constructor ServiceMessage(string $type, array $parameters)
  • added: constructor TeamCityLogger(OutputInterface $output, Converter $converter, ?int $flowId, bool $withoutDuration)
  • added: final class ServiceMessage
  • added: final class TeamCityLogger
  • added: method ServiceMessage.toString(): string
  • added: method TeamCityLogger.output(ServiceMessage $message): void
  • added: method TeamCityLogger.testConsideredRisky(ConsideredRisky $event): void
  • added: method TeamCityLogger.testErrored(Errored $event): void
  • added: method TeamCityLogger.testExecutionFinished(ExecutionFinished $event): void
  • added: method TeamCityLogger.testFailed(Failed $event): void
  • added: method TeamCityLogger.testFinished(Finished $event): void
  • added: method TeamCityLogger.testMarkedIncomplete(MarkedIncomplete $event): never
  • added: method TeamCityLogger.testPrepared(Prepared $event): void
  • added: method TeamCityLogger.testSkipped(Skipped $event): void
  • added: method TeamCityLogger.testSuiteFinished(TestSuiteFinished $event): void
  • added: method TeamCityLogger.testSuiteStarted(TestSuiteStarted $event): void
  • added: static method ServiceMessage.comparisonFailure(string $name, string $message, string $details, string $actual, string $expected): self
  • added: static method ServiceMessage.setFlowId(int $flowId): void
  • added: static method ServiceMessage.testFailed(string $name, string $message, string $details): self
  • added: static method ServiceMessage.testFinished(string $name, int $duration): self
  • added: static method ServiceMessage.testIgnored(string $name, string $message, ?string $details = …): self
  • added: static method ServiceMessage.testStarted(string $name, string $location): self
  • added: static method ServiceMessage.testStdErr(string $name, string $data): self
  • added: static method ServiceMessage.testStdOut(string $name, string $data): self
  • added: static method ServiceMessage.testSuiteCount(int $count): self
  • added: static method ServiceMessage.testSuiteFinished(string $name): self
  • added: static method ServiceMessage.testSuiteStarted(string $name, ?string $location): self
  • added: abstract class Subscriber
  • added: constructor Subscriber(TeamCityLogger $logger)
  • added: final class TestConsideredRiskySubscriber extends Subscriber implements ConsideredRiskySubscriber
  • added: final class TestErroredSubscriber extends Subscriber implements ErroredSubscriber
  • added: final class TestExecutionFinishedSubscriber extends Subscriber implements ExecutionFinishedSubscriber
  • added: final class TestFailedSubscriber extends Subscriber implements FailedSubscriber
  • added: final class TestFinishedSubscriber extends Subscriber implements FinishedSubscriber
  • added: final class TestMarkedIncompleteSubscriber extends Subscriber implements MarkedIncompleteSubscriber
  • added: final class TestPreparedSubscriber extends Subscriber implements PreparedSubscriber
  • added: final class TestSkippedSubscriber extends Subscriber implements SkippedSubscriber
  • added: final class TestSuiteFinishedSubscriber extends Subscriber implements FinishedSubscriber
  • added: final class TestSuiteStartedSubscriber extends Subscriber implements StartedSubscriber
  • added: method TestConsideredRiskySubscriber.notify(ConsideredRisky $event): void
  • added: method TestErroredSubscriber.notify(Errored $event): void
  • added: method TestExecutionFinishedSubscriber.notify(ExecutionFinished $event): void
  • added: method TestFailedSubscriber.notify(Failed $event): void
  • added: method TestFinishedSubscriber.notify(Finished $event): void
  • added: method TestMarkedIncompleteSubscriber.notify(MarkedIncomplete $event): void
  • added: method TestPreparedSubscriber.notify(Prepared $event): void
  • added: method TestSkippedSubscriber.notify(Skipped $event): void
  • added: method TestSuiteFinishedSubscriber.notify(Finished $event): void
  • added: method TestSuiteStartedSubscriber.notify(Started $event): void
  • added: protected method Subscriber.logger(): TeamCityLogger
  • added: final class Any
  • added: constructor Expectation(mixed $value)
  • added: final class Expectation
  • added: method Expectation.toBe(mixed $expected, string $message = …): self
  • added: method Expectation.toBeAlpha(string $message = …): self
  • added: method Expectation.toBeAlphaNumeric(string $message = …): self
  • added: method Expectation.toBeArray(string $message = …): self
  • added: method Expectation.toBeBetween(int|float|DateTimeInterface $lowestValue, int|float|DateTimeInterface $highestValue, string $message = …): self
  • added: method Expectation.toBeBool(string $message = …): self
  • added: method Expectation.toBeCallable(string $message = …): self
  • added: method Expectation.toBeCamelCase(string $message = …): self
  • added: method Expectation.toBeDigits(string $message = …): self
  • added: method Expectation.toBeDirectory(string $message = …): self
  • added: method Expectation.toBeEmpty(string $message = …): self
  • added: method Expectation.toBeFalse(string $message = …): self
  • added: method Expectation.toBeFalsy(string $message = …): self
  • added: method Expectation.toBeFile(string $message = …): self
  • added: method Expectation.toBeFloat(string $message = …): self
  • added: method Expectation.toBeGreaterThan(int|float|string|DateTimeInterface $expected, string $message = …): self
  • added: method Expectation.toBeGreaterThanOrEqual(int|float|string|DateTimeInterface $expected, string $message = …): self
  • added: method Expectation.toBeIn(iterable $values, string $message = …): self
  • added: method Expectation.toBeInfinite(string $message = …): self
  • added: method Expectation.toBeInstanceOf(string $class, string $message = …): self
  • added: method Expectation.toBeInt(string $message = …): self
  • added: method Expectation.toBeIterable(string $message = …): self
  • added: method Expectation.toBeJson(string $message = …): self
  • added: method Expectation.toBeKebabCase(string $message = …): self
  • added: method Expectation.toBeLessThan(int|float|string|DateTimeInterface $expected, string $message = …): self
  • added: method Expectation.toBeLessThanOrEqual(int|float|string|DateTimeInterface $expected, string $message = …): self
  • added: method Expectation.toBeList(string $message = …): self
  • added: method Expectation.toBeLowercase(string $message = …): self
  • added: method Expectation.toBeNan(string $message = …): self
  • added: method Expectation.toBeNull(string $message = …): self
  • added: method Expectation.toBeNumeric(string $message = …): self
  • added: method Expectation.toBeObject(string $message = …): self
  • added: method Expectation.toBeReadableDirectory(string $message = …): self
  • added: method Expectation.toBeReadableFile(string $message = …): self
  • added: method Expectation.toBeResource(string $message = …): self
  • added: method Expectation.toBeScalar(string $message = …): self
  • added: method Expectation.toBeSnakeCase(string $message = …): self
  • added: method Expectation.toBeString(string $message = …): self
  • added: method Expectation.toBeStudlyCase(string $message = …): self
  • added: method Expectation.toBeTrue(string $message = …): self
  • added: method Expectation.toBeTruthy(string $message = …): self
  • added: method Expectation.toBeUppercase(string $message = …): self
  • added: method Expectation.toBeUrl(string $message = …): self
  • added: method Expectation.toBeUuid(string $message = …): self
  • added: method Expectation.toBeWritableDirectory(string $message = …): self
  • added: method Expectation.toBeWritableFile(string $message = …): self
  • added: method Expectation.toContain(mixed ...$needles): self
  • added: method Expectation.toContainEqual(mixed ...$needles): self
  • added: method Expectation.toContainOnlyInstancesOf(string $class, string $message = …): self
  • added: method Expectation.toEndWith(string $expected, string $message = …): self
  • added: method Expectation.toEqual(mixed $expected, string $message = …): self
  • added: method Expectation.toEqualCanonicalizing(mixed $expected, string $message = …): self
  • added: method Expectation.toEqualWithDelta(mixed $expected, float $delta, string $message = …): self
  • added: method Expectation.toHaveCount(int $count, string $message = …): self
  • added: method Expectation.toHaveKey(string|int $key, mixed $value = …, string $message = …): self
  • added: method Expectation.toHaveKeys(array $keys, string $message = …): self
  • added: method Expectation.toHaveLength(int $number, string $message = …): self
  • added: method Expectation.toHaveMethod(string $name, string $message = …): self
  • added: method Expectation.toHaveMethods(iterable $names, string $message = …): self
  • added: method Expectation.toHaveProperties(iterable $names, string $message = …): self
  • added: method Expectation.toHaveProperty(string $name, mixed $value = …, string $message = …): self
  • added: method Expectation.toHaveSameSize(Countable|iterable $expected, string $message = …): self
  • added: method Expectation.toMatch(string $expression, string $message = …): self
  • added: method Expectation.toMatchArray(iterable $array, string $message = …): self
  • added: method Expectation.toMatchConstraint(Constraint $constraint, string $message = …): self
  • added: method Expectation.toMatchObject(iterable $object, string $message = …): self
  • added: method Expectation.toMatchSnapshot(string $message = …): self
  • added: method Expectation.toStartWith(string $expected, string $message = …): self
  • added: method Expectation.toThrow(callable|string|Throwable $exception, ?string $exceptionMessage = …, string $message = …): self
  • added: property Expectation.value: mixed
  • added: constructor AfterEachCall(TestSuite $testSuite, string $filename, ?Closure $closure = …)
  • added: constructor BeforeEachCall(TestSuite $testSuite, string $filename, ?Closure $closure = …)
  • added: constructor DescribeCall(TestSuite $testSuite, string $filename, string $description, Closure $tests)
  • added: constructor TestCall(TestSuite $testSuite, string $filename, ?string $description = …, ?Closure $closure = …)
  • added: constructor UsesCall(string $filename, array $classAndTraits)
  • added: final class AfterEachCall
  • added: final class BeforeEachCall
  • added: final class DescribeCall
  • added: final class TestCall
  • added: final class UsesCall
  • added: method AfterEachCall.__call(string $name, array $arguments): self
  • added: method AfterEachCall.__destruct()
  • added: method BeforeEachCall.__call(string $name, array $arguments): self
  • added: method BeforeEachCall.__destruct()
  • added: method DescribeCall.__call(string $name, array $arguments): BeforeEachCall
  • added: method DescribeCall.__destruct()
  • added: method TestCall.__call(string $name, array $arguments): self
  • added: method TestCall.__destruct()
  • added: method TestCall.__get(string $name): self
  • added: method TestCall.covers(string ...$classesOrFunctions): self
  • added: method TestCall.coversClass(string ...$classes): self
  • added: method TestCall.coversFunction(string ...$functions): self
  • added: method TestCall.coversNothing(): self
  • added: method TestCall.depends(string ...$depends): self
  • added: method TestCall.fails(?string $message = …): self
  • added: method TestCall.group(string ...$groups): self
  • added: method TestCall.only(): self
  • added: method TestCall.onlyOnLinux(): self
  • added: method TestCall.onlyOnMac(): self
  • added: method TestCall.onlyOnWindows(): self
  • added: method TestCall.repeat(int $times): self
  • added: method TestCall.skip(Closure|bool|string $conditionOrMessage = …, string $message = …): self
  • added: method TestCall.skipOnLinux(): self
  • added: method TestCall.skipOnMac(): self
  • added: method TestCall.skipOnPhp(string $version): self
  • added: method TestCall.skipOnWindows(): self
  • added: method TestCall.throws(string|int $exception, ?string $exceptionMessage = …, ?int $exceptionCode = …): self
  • added: method TestCall.throwsIf(callable|bool $condition, string|int $exception, ?string $exceptionMessage = …, ?int $exceptionCode = …): self
  • added: method TestCall.throwsNoExceptions(): self
  • added: method TestCall.throwsUnless(callable|bool $condition, string|int $exception, ?string $exceptionMessage = …, ?int $exceptionCode = …): self
  • added: method TestCall.todo(): self
  • added: method TestCall.with(Closure|iterable|string ...$data): self
  • added: method UsesCall.__destruct()
  • added: method UsesCall.afterAll(Closure $hook): self
  • added: method UsesCall.afterEach(Closure $hook): self
  • added: method UsesCall.beforeAll(Closure $hook): self
  • added: method UsesCall.beforeEach(Closure $hook): self
  • added: method UsesCall.compact(): self
  • added: method UsesCall.group(string ...$groups): self
  • added: method UsesCall.in(string ...$targets): void
  • added: property BeforeEachCall.testSuite: TestSuite
  • added: property DescribeCall.description: string
  • added: property DescribeCall.filename: string
  • added: property DescribeCall.testSuite: TestSuite
  • added: property DescribeCall.tests: Closure
  • added: property TestCall.testCaseMethod: TestCaseMethodFactory
  • added: static method DescribeCall.describing(): ?string
  • added: property Describable.describing: ?string
  • added: trait Describable
  • removed: constructor AfterEachCall(TestSuite $testSuite, string $filename, Closure $closure = …)
  • removed: constructor BeforeEachCall(TestSuite $testSuite, string $filename, Closure $closure = …)
  • removed: constructor TestCall(TestSuite $testSuite, string $filename, string $description = …, Closure $closure = …)
  • removed: constructor UsesCall(string $filename, array $classAndTraits)
  • removed: final class AfterEachCall
  • removed: final class BeforeEachCall
  • removed: final class TestCall
  • removed: final class UsesCall
  • removed: method AfterEachCall.__call(string $name, array $arguments): self
  • removed: method AfterEachCall.__destruct()
  • removed: method BeforeEachCall.__call(string $name, array $arguments): self
  • removed: method BeforeEachCall.__destruct()
  • removed: method TestCall.__call(string $name, array $arguments): self
  • removed: method TestCall.__destruct()
  • removed: method TestCall.__get(string $name): self
  • removed: method TestCall.depends(string ...$tests): TestCall
  • removed: method TestCall.group(string ...$groups): TestCall
  • removed: method TestCall.only(): TestCall
  • removed: method TestCall.skip($conditionOrMessage = …, string $message = …): TestCall
  • removed: method TestCall.throws(string $exception, string $exceptionMessage = …): TestCall
  • removed: method TestCall.throwsIf($condition, string $exception, string $exceptionMessage = …): TestCall
  • removed: method TestCall.with(...$data): TestCall
  • removed: method UsesCall.__destruct()
  • removed: method UsesCall.afterAll(Closure $hook): UsesCall
  • removed: method UsesCall.afterEach(Closure $hook): UsesCall
  • removed: method UsesCall.beforeAll(Closure $hook): UsesCall
  • removed: method UsesCall.beforeEach(Closure $hook): UsesCall
  • removed: method UsesCall.group(string ...$groups): UsesCall
  • removed: method UsesCall.in(string ...$targets): void
  • removed: constructor Version(OutputInterface $output)
  • changed: constructor Init(TestSuite $testSuite, OutputInterface $output) → constructor Init(TestSuite $testSuite, InputInterface $input, OutputInterface $output)
  • changed: method Coverage.addOutput(int $result): int → method Coverage.addOutput(int $exitCode): int
  • changed: property Coverage.coverage → property Coverage.coverage: bool
  • changed: property Coverage.coverageMin → property Coverage.coverageMin: float
  • changed: static method Environment.name(string $name = …): string → static method Environment.name(?string $name = …): string
  • added: constructor Help(OutputInterface $output)
  • added: constructor Memory(OutputInterface $output)
  • added: final class Bail implements HandlesArguments
  • added: final class Cache implements HandlesArguments
  • added: final class Help implements HandlesArguments
  • added: final class Memory implements AddsOutput, HandlesArguments
  • added: final class Only implements Terminable
  • added: final class Parallel implements HandlesArguments
  • added: final class Printer implements HandlesArguments
  • added: final class ProcessIsolation implements HandlesArguments
  • added: final class Profile implements HandlesArguments
  • added: final class Retry implements HandlesArguments
  • added: final class Snapshot implements HandlesArguments
  • added: final class Verbose implements HandlesArguments
  • added: method Bail.handleArguments(array $arguments): array
  • added: method Cache.handleArguments(array $arguments): array
  • added: method Help.handleArguments(array $arguments): array
  • added: method Init.init(): void
  • added: method Memory.addOutput(int $exitCode): int
  • added: method Memory.handleArguments(array $arguments): array
  • added: method Only.terminate(): void
  • added: method Parallel.handleArguments(array $arguments): array
  • added: method Printer.handleArguments(array $arguments): array
  • added: method ProcessIsolation.handleArguments(array $arguments): array
  • added: method Profile.handleArguments(array $arguments): array
  • added: method Retry.handleArguments(array $arguments): array
  • added: method Snapshot.handleArguments(array $arguments): array
  • added: method Verbose.handleArguments(array $arguments): array
  • added: static method Only.enable(TestCall $testCall): void
  • added: static method Only.isEnabled(): bool
  • added: static method Parallel.getGlobal(string $key): string|int|bool|null
  • added: static method Parallel.isEnabled(): bool
  • added: static method Parallel.isWorker(): bool
  • added: static method Parallel.setGlobal(string $key, string|int|bool|Stringable $value): void
  • added: final class CallsAddsOutput
  • added: final class CallsBoot
  • added: final class CallsHandleArguments
  • added: final class CallsHandleOriginalArguments
  • added: final class CallsTerminable
  • added: static method CallsAddsOutput.execute(int $exitCode): int
  • added: static method CallsBoot.execute(): void
  • added: static method CallsHandleArguments.execute(array $argv): array
  • added: static method CallsHandleOriginalArguments.execute(array $argv): void
  • added: static method CallsTerminable.execute(): void
  • added: method HandleArguments.hasArgument(string $argument, array $arguments): bool
  • added: method HandleArguments.popArgument(string $argument, array $arguments): array
  • added: method HandleArguments.pushArgument(string $argument, array $arguments): array
  • added: trait HandleArguments
  • added: interface HandlersWorkerArguments
  • added: method HandlersWorkerArguments.handleWorkerArguments(array $arguments): array
  • added: final class Laravel implements HandlesArguments
  • added: final class Parallel implements HandlesArguments
  • added: final class Pest implements HandlersWorkerArguments
  • added: method Laravel.handleArguments(array $arguments): array
  • added: method Parallel.handleArguments(array $arguments): array
  • added: method Pest.handleWorkerArguments(array $arguments): array
  • added: constructor ResultPrinter(OutputInterface $output, Options $options)
  • added: constructor WrapperRunner(Options $options, OutputInterface $output)
  • added: final class CleanConsoleOutput extends ConsoleOutput
  • added: final class ResultPrinter
  • added: final class WrapperRunner implements RunnerInterface
  • added: method ResultPrinter.printFeedback(SplFileInfo $progressFile, SplFileInfo $outputFile, array $teamcityFiles): void
  • added: method ResultPrinter.printResults(TestResult $testResult, array $teamcityFiles, array $testdoxFiles, Duration $duration): void
  • added: method WrapperRunner.run(): int
  • added: property ResultPrinter.lastWasTodo: bool
  • added: property ResultPrinter.passedTests: int
  • added: property ResultPrinter.printer: Printer
  • added: protected method CleanConsoleOutput.doWrite(string $message, bool $newline): void
  • added: constructor CompactPrinter(Terminal $terminal, OutputInterface $output, Style $style, int $compactSymbolsPerLine)
  • added: final class CompactPrinter
  • added: method CompactPrinter.descriptionItem(string $item): void
  • added: method CompactPrinter.errors(State $state): void
  • added: method CompactPrinter.newLine(): void
  • added: method CompactPrinter.recap(State $state, PHPUnitTestResult $testResult, Duration $duration, Options $options): void
  • added: static method CompactPrinter.default(): self
  • removed: method TestRepository.build(TestSuite $testSuite, callable $each): void
  • changed: method AfterEachRepository.set(string $filename, Closure $closure): void → method AfterEachRepository.set(string $filename, AfterEachCall $afterEachCall, Closure $afterEachTestCase): void
  • changed: method BeforeEachRepository.get(string $filename): Closure → method BeforeEachRepository.get(string $filename): array
  • changed: method BeforeEachRepository.set(string $filename, Closure $closure): void → method BeforeEachRepository.set(string $filename, BeforeEachCall $beforeEachCall, Closure $beforeEachTestCall, Closure $beforeEachTestCase): void
  • changed: method TestRepository.set(TestCaseFactory $test): void → method TestRepository.set(TestCaseMethodFactory $method): void
  • added: constructor SnapshotRepository(string $testsPath, string $snapshotsPath)
  • added: final class DatasetsRepository
  • added: final class SnapshotRepository
  • added: method SnapshotRepository.flush(): void
  • added: method SnapshotRepository.get(): array
  • added: method SnapshotRepository.has(): bool
  • added: method SnapshotRepository.save(string $snapshot): string
  • added: method SnapshotRepository.startNewExpectation(): void
  • added: method TestRepository.addTestCaseFilter(TestCaseFilter $filter): void
  • added: method TestRepository.addTestCaseMethodFilter(TestCaseMethodFilter $filter): void
  • added: method TestRepository.get(string $filename): TestCaseFactory
  • added: method TestRepository.makeIfNeeded(string $filename): void
  • added: static method DatasetsRepository.get(string $filename, string $description): Closure|array
  • added: static method DatasetsRepository.has(string $filename, string $description): bool
  • added: static method DatasetsRepository.resolve(array $dataset, string $currentTestFile): ?array
  • added: static method DatasetsRepository.set(string $name, Closure|iterable $data, string $scope): void
  • added: static method DatasetsRepository.with(string $filename, string $description, array $with): void
  • added: constructor EnsureTeamCityEnabled(InputInterface $input, OutputInterface $output, TestSuite $testSuite)
  • added: final class EnsureConfigurationIsAvailable implements ConfiguredSubscriber
  • added: final class EnsureIgnorableTestCasesAreIgnored implements StartedSubscriber
  • added: final class EnsureKernelDumpIsFlushed implements StartedSubscriber
  • added: final class EnsureTeamCityEnabled implements ConfiguredSubscriber
  • added: method EnsureConfigurationIsAvailable.notify(Configured $event): void
  • added: method EnsureIgnorableTestCasesAreIgnored.notify(Started $event): void
  • added: method EnsureKernelDumpIsFlushed.notify(Started $event): void
  • added: method EnsureTeamCityEnabled.notify(Configured $event): void
  • removed: constructor Extendable(string $extendableClass)
  • removed: final class Extendable
  • removed: method Extendable.extend(string $name, Closure $extend): void
  • removed: static method ChainableClosure.from(Closure $closure, Closure $next): Closure
  • removed: static method ChainableClosure.fromStatic(Closure $closure, Closure $next): Closure
  • removed: static method ExceptionTrace.removePestReferences(Throwable $t): void
  • changed: constructor HigherOrderMessage(string $filename, int $line, string $methodName, $arguments) → constructor HigherOrderMessage(string $filename, int $line, string $name, ?array $arguments)
  • changed: method Container.add(string $id, $instance): void → method Container.add(string $id, object|string $instance): self
  • changed: method Container.get(string $id) → method Container.get(string $id): object|string
  • changed: method HigherOrderCallables.and($value) → method HigherOrderCallables.and(mixed $value): Expectation
  • changed: method HigherOrderCallables.expect($value) → method HigherOrderCallables.expect(mixed $value): Expectation
  • changed: method HigherOrderCallables.tap(callable $callable) → method HigherOrderCallables.tap(callable $callable): object
  • changed: method HigherOrderMessage.call(object $target) → method HigherOrderMessage.call(object $target): mixed
  • changed: method HigherOrderMessageCollection.add(string $filename, int $line, string $name, array $arguments = …): void → method HigherOrderMessageCollection.add(string $filename, int $line, string $name, ?array $arguments): void
  • changed: method HigherOrderMessageCollection.addWhen(callable $condition, string $filename, int $line, string $name, array $arguments = …): void → method HigherOrderMessageCollection.addWhen(callable $condition, string $filename, int $line, string $name, ?array $arguments): void
  • changed: method HigherOrderTapProxy.__set(string $property, $value): void → method HigherOrderTapProxy.__set(string $property, mixed $value): void
  • changed: property HigherOrderMessage.arguments → property HigherOrderMessage.arguments: ?array
  • changed: property HigherOrderMessage.condition → property HigherOrderMessage.condition: ?Closure
  • changed: property HigherOrderMessage.filename → property HigherOrderMessage.filename: string
  • changed: property HigherOrderMessage.line → property HigherOrderMessage.line: int
  • changed: property HigherOrderMessage.name → property HigherOrderMessage.name: string
  • changed: property HigherOrderTapProxy.target → property HigherOrderTapProxy.target: TestCase
  • changed: static method Arr.get(array $array, $key, $default = …) → static method Arr.get(array $array, string|int $key, mixed $default = …): mixed
  • changed: static method Arr.has(array $array, $key): bool → static method Arr.has(array $array, string|int $key): bool
  • changed: static method Coverage.getMissingCoverage($file): array → static method Coverage.getMissingCoverage(mixed $file): array
  • changed: static method ExceptionTrace.ensure(Closure $closure) → static method ExceptionTrace.ensure(Closure $closure): mixed
  • changed: static method Reflection.bindCallable(callable $callable, array $args = …) → static method Reflection.bindCallable(callable $callable, array $args = …): mixed
  • changed: static method Reflection.bindCallableWithData(callable $callable) → static method Reflection.bindCallableWithData(callable $callable): mixed
  • changed: static method Reflection.call(object $object, string $method, array $args = …) → static method Reflection.call(object $object, string $method, array $args = …): mixed
  • changed: static method Reflection.getPropertyValue(object $object, string $property) → static method Reflection.getPropertyValue(object $object, string $property): mixed
  • changed: static method Reflection.setPropertyValue(object $object, string $property, $value): void → static method Reflection.setPropertyValue(object $object, string $property, mixed $value): void
  • added: const DatasetInfo.DATASETS_DIR_NAME
  • added: const DatasetInfo.DATASETS_FILE_NAME
  • added: constructor ExpectationPipeline(Closure $closure)
  • added: constructor Exporter(BaseExporter $exporter)
  • added: final class Closure
  • added: final class DatasetInfo
  • added: final class ExpectationPipeline
  • added: final class Exporter
  • added: final class StateGenerator
  • added: final class View
  • added: method ExpectationPipeline.carry(): Closure
  • added: method ExpectationPipeline.run(): void
  • added: method ExpectationPipeline.send(mixed ...$passables): self
  • added: method ExpectationPipeline.through(array $pipes): self
  • added: method Exporter.shortenedExport(mixed $value): string
  • added: method Exporter.shortenedRecursiveExport(array &$data, ?Context $context = …): string
  • added: method HigherOrderCallables.defer(callable $callable): object
  • added: method StateGenerator.fromPhpUnitTestResult(int $passedTests, PHPUnitTestResult $testResult): State
  • added: static method Arr.dot(array $array, string $prepend = …): array
  • added: static method Backtrace.datasetsFile(): string
  • added: static method ChainableClosure.bound(Closure $closure, Closure $next): Closure
  • added: static method ChainableClosure.boundStatically(Closure $closure, Closure $next): Closure
  • added: static method ChainableClosure.boundWhen(Closure $condition, Closure $next): Closure
  • added: static method ChainableClosure.unbound(Closure $closure, Closure $next): Closure
  • added: static method Closure.bind(?BaseClosure $closure, ?object $newThis, object|string|null $newScope = …): BaseClosure
  • added: static method DatasetInfo.isADatasetsFile(string $file): bool
  • added: static method DatasetInfo.isInsideADatasetsDirectory(string $file): bool
  • added: static method DatasetInfo.scope(string $file): string
  • added: static method ExpectationPipeline.for(Closure $closure): self
  • added: static method Exporter.default(): self
  • added: static method Reflection.getFunctionVariable(Closure $function, string $key): mixed
  • added: static method Str.after(string $subject, string $search): string
  • added: static method Str.beforeLast(string $subject, string $search): string
  • added: static method Str.describe(string $describeDescription, string $testDescription): string
  • added: static method Str.evaluable(string $code): string
  • added: static method Str.isUrl(string $value): bool
  • added: static method Str.isUuid(string $value): bool
  • added: static method View.render(string $path, array $data = …): void
  • added: static method View.renderUsing(OutputInterface $output): void
  • added: constructor GitDirtyTestCaseFilter(string $projectRoot)
  • added: final class GitDirtyTestCaseFilter implements TestCaseFilter
  • added: method GitDirtyTestCaseFilter.accept(string $testCaseFilename): bool
  • added: final class TodoTestCaseFilter implements TestCaseMethodFilter
  • added: method TodoTestCaseFilter.accept(TestCaseMethodFactory $factory): bool
  • added: final class IgnorableTestCase extends TestCase
  • changed: function afterEach(Closure $closure = …): AfterEachCall → function afterEach(?Closure $closure = …): AfterEachCall
  • changed: function beforeEach(Closure $closure = …): BeforeEachCall → function beforeEach(?Closure $closure = …): BeforeEachCall
  • changed: function dataset(string $name, $dataset): void → function dataset(string $name, Closure|iterable $dataset): void
  • changed: function expect($value = …) → function expect(mixed $value = …): Expectation
  • changed: function it(string $description, Closure $closure = …): TestCall → function it(string $description, ?Closure $closure = …): TestCall
  • changed: function test(string $description = …, Closure $closure = …) → function test(?string $description = …, ?Closure $closure = …): HigherOrderTapProxy|TestCall
  • added: function describe(string $description, Closure $tests): DescribeCall
  • added: function todo(string $description): TestCall