Repository navigation
Tester 2.7 makes itself at home in CI: failures land right in the pull request diff, hanging tests no longer hang the pipeline, and slow tests have nowhere to hide.
β¨ New Features
- GitHub Actions annotations β the new
-o githuboutput marks failed tests directly in the PR diff view, and it switches on automatically when Tester runs on GitHub Actions, so there is nothing to configure - Test time limit β
--timeout <seconds>sets a limit for every test,@timeoutoverrides it per file; a test that runs over is terminated and reported as a failure instead of blocking the whole run --slowestβ prints the 10 (or as many as you ask for) slowest tests after the run, so you know exactly where the time goes#[DataProvider]and#[Throws]attributes βTestCasemethods can now use PHP attributes instead of docblock annotations; the annotations keep workingHttpAssert::fetch()accepts atimeout(30 seconds by default), so an unresponsive server can't stall a test- JUnit reports now include test durations, for failed and skipped tests as well
- Faster cold start β
TestCasemethods are discovered in parallel with other tests, and each test file's annotations are parsed only once
π₯ Breaking Changes
- PHP 8.1 is now the minimum required version
Environment::skip(),Environment::exit()andTestCase::skip()now returnnever; a subclass overriding them must change its return type too- The
testercommand exits with a non-zero code when it finds no tests, so a mistyped path no longer passes in CI - A
TestCasedata provider that returns no data sets is now an error, just like an empty file-level provider - Assertion type
'integer'inAssert::type()is deprecated, use'int'
π Bug Fixes
- TAP and JUnit outputs no longer contain ANSI color sequences
Environment::lock()reports an error when the lock directory does not exist