Upgrading pestphp/pest 1 to 2
Unknownv1.23.1 → v2.36.1Security1New41Changed8Fixed38Other15
SecuritySecurity issue found in PHPUnit / https://github.com/sebastianbergmann/phpunit/security/advisories/GHSA-vvj3-c3rp-c85p.GHSA-vvj3-c3rp-c85p ↗
UnknownUpgrade verdict
8 of 92 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 v2.36.1: ^7.3 || ^8.0 → ^8.2.0.
What you must change
Security1
Security issue found in PHPUnit / https://github.com/sebastianbergmann/phpunit/security/advisories/GHSA-vvj3-c3rp-c85p.
API changes
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