With this new minor, we’re adding a new usability feature: we’re respecting PHPUnit suppression of issues, either if that happens via attributes or via baseline. Such information was already being propagated by PHPUnit’s event system, onto which Paraunit latches to work its magic.
Credits to @keradus, the maintainer of PHP-CS-Fixer (which uses Paraunit it its CI), for bringing this to my attention.
The obvious next step would be to support similar options for output coming from PHPUnit config of from –-display-* CLI options.
With this new minor, we’re adding a small performance improvement for test coverage, by running phpunit -- before running all tests. This small feature should reduce tests execution time and avoid race conditions when the first batch of tests runs (and find the cache not ready).
Credits to Sebastian for pointing this out to me!
This is the full changelog:
Add coverage cache warmup #379 Fix transient dependencies #373
With this new minor, we’re finally able to support the newly released PHPUnit 13 with Paraunit. This basically required no code changes apart from the composer.json constraints and a couple of tests adjustments, as a testament of the reliable integration strategy that I chose when integrating with it.
This release also includes a small PR about notices being reported as specific issues when running tests, which was pending for a while.
This small new patch was triggered by a PR from a new contributor, Kocal, thank you! The fixes needed to make Paraunit compatible with Symfony 8 was a single line change (plus some more in the unit tests), which is impressive since now we support 5 different major versions, all across from 4.4 (which is EOL) up to 8.0!
This is the full changelog:
Add support for Symfony 8 #344, thanks @Kocal
This new release includes a couple of improvements: the first one is the addition of PHPUnit deprecation as separate test issues, so that those will be reported in a separate category, as with PHPUnit itself; the second one stems from some issues detected by PHP-CS-Fixer under PHP 8.5, where some skipped tests were marked erroneously as “abnormal terminations”. I discovered that, when using the requires attribute, PHPUnit would report only a Skipped event, without the TestStarted, TestPrepared and TestFinished events, which would trigger this issue.
This new release includes the resolution of a long-standing issue, which polluted Paraunit’s output when too many deprecations were detected. In this new version, Paraunit respects PHPUnit’s configuration, which by default does not show the full deprecation text.
Deprecations are detected anyway, so you will still get yellow Ds and the list of affected tests when appropriate.
This is the full changelog
Added Deprecations details are now shown according to the PHPUnit config #303, thanks @garak NB: the config attribute in the PhpUnit configuration is displayDetailsOnTestsThatTriggerDeprecations.
This new release includes the official support to PHPUnit 12, which did not need any code changes, just some CI fixes and the common Composer constraint widening. The biggest amount of work came just from upgrading (and pulling the forks) from the Prophecy toolchain, to make the CI work without waiting for their releases.
This is the full changelog
Added Add PHPUnit 12 support #297 Add PHP 8.4 support #279
This new release comes thanks to a new contributor: thanks @raffaelecarelle!
He contributed the support of two native PHPUnit options with a single pull request: --exclude-testsuite and --test-suffix. Both these options allow the user to filter and exclude tests from the execution.
This is the full changelog
Added --exclude-testsuite option #273, thanks @raffaelecarelle --test-suffix option #273, thanks @raffaelecarelle
This small patch release is fully due to external contributions: thanks @kubawerlos!
He contributed two different patches, one to update the .gitattributes exclusion list, the second to fix some constraint on some dependencies that where preventing PHPUnit 11.3 from being installed.
This is the full changelog
Fix PHPUnit 11.3 compat #260, thanks @kubawerlos Reduce package footprint by updating .gitattributes #261, thanks @kubawerlos
I got a bug report saying that the Symfony PHPUnit Bridge 6.4.8 and 7.0.8 and higher made test runs with Paraunit fail due to a warning. At first I thought that the Symfony error handler was messing with PHPUnit’s again, but in reality it was just making explicit a warning that was already there for ages.
This simple patch avoids generating that warning, and makes your CI green again!
This is the full changelog
I noticed that, since Paraunit 2, the recap at the end of the execution got very long. This was due to an improper serialization of the logs, where the test name was treated as a generic Test value object instead of a specific TestMethod one, where the class name is shown split form the method name.
This had the unintended consequence of not deduplicating the list of files which are printed at the end of Paraunit’s execution, so in case an error or failure was repeated many times (i.
I may have jumped the gun while releasing the PHPUnit 11 compat, and I didn’t check that the CI was actually installing it. Unfortunately there were multiple dependencies still conflicting with it, and Prophecy needed some PRs to be compatible. I filed them and used them in my CI, so that now the compatibility is checked.
I needed to do multiple changes to make the CI green, but still no code changes was needed, only a widening of composer.
On the same day of PHPUnit 11.0.0 release, I’m able to release a minor version of Paraunit that supports it, and no code change was necessary! You may still be impacted by PHPUnit’s breaking changes and require to adjust your tests accordingly, but Paraunit can be upgraded before with no hassle (provided that you have at least PHPUnit 10.5.4 already installed), since it’s cross-compatible between the two major versions.
This is the full changelog
This is a small patch to smooth the compatibility with the new release of PHPUnit, 10.4. Previous versions would still work fine, but I took the time to fix all the tests (that were broken due to reliance on @internal code such as PHPUnit events) and to add support for the new CLI options regarding the errors baseline.
Added Add support for PHPUnit 10.4 #218
This another small patch is to allow using Paraunit with Symfony 7, which was released just yesterday. The related PR needed just to fix a couple of return types. Paraunit should work flawlessly with PHP 8.3 too, which was released a couple of day prior, but I had to revert the additional CI job because Prophecy is not ready yet.
Added Add support for PHPUnit 10.4 #218
I discovered this bug while trying to upgrade a work project to PHPUnit 10. The issue was caused by an empty data provider.
Added Add output when failing due to PHPUnit runner errors (i.e. with an empty data provider) #217
This new minor versions adds support for the Cobertura coverage report, which is supported by many services and tool, with GitLab as a prominent one.
Added Add --cobertura coverage report format, useful for GitLab test code coverage visualization
This new minor versions adds a new, small feature to support one small sorting option, the random one. This is useful to mix test execution, if you’re encountering deadlocks and performance bottlenecks due to the concentration of certain tests in some areas of your test suite.
Added Add --sort=random option to execute test classes in random order
This new major version has seen its inception a long time ago, on October 2021, and it went to sleep for a long time, since PHPUnit development was doing the same. After some additional attempts, I was finally able to complete this alongside the long-awaited release of PHPUnit 10.
All the changes in PHPUnit allowed me to finally bump the minimum PHP version to 8.1 (so that enums are now usable!
This new minor release comes after more than a year since the last tag.
It actually comes with a couple of new interesting features, one of which is a new behavior for tests parallelization. The new --chunk-size option, when set at a value higher that 1, will execute more than one test class per single process, making the execution faster for test suites where the class setup is expensive.
Here’s the full changelog of the release:
This small patch is just to allow a dependency bump for end users.
Here’s the full changelog of the release:
Added Allow jean85/pretty-package-versions v2 90f84b5
This release contains only support for newer versions of PHP & PHPUnit; due to PHPUnit 9.3 requiring a new major version of phpunit/php-code-coverage, I’m forced to drop support to all PHPUnit versions below 9.3. Usage of Paraunit is unchanged.
Here’s the full changelog of the release:
Added Add support for PHP 8.0 #154 Add support for PHPUnit 9.3 #153 Removed Drop support for PHPUnit < 9.3 #153
This small path adds detection for deadlocks during test execution when using PostgreSQL, thanks to an external contributor.
Here’s the full changelog of the release:
Added Add support for deadlock detection on PostgreSQL #152, thanks @elernonelma
As reported in the previous release, I was working on supporting PHPUnit 9. Today, PHPUnit 9.1 was released, and so I’ve released Paraunit 1.1.0, which supports only PHPUnit 9.1 and forward: this is due to the fact that the --printer option got deprecated, so I have to switch approach to have a working solution for the foreseeable future. In this case, I switched to using TestHook, and opted for a small refactor of how Paraunit fetches PHPUnit test results.
While I’m actively working on a big refactor toward supporting PHPUnit 9, I’ve found two small fixes that have to be released as the first stable patch since the 1.0 release.
Here’s the changelog:
Fixed Fix handling of PHPUnit --stderr option #144, thanks @pczerkas Fix small issue in checking coverage data syntax 8f70c
Today I decided to release facile-it/paraunit 1.0.0! In reality the package was pretty stable and widely used at Facile.it for a long time, but right now I wanted to step forward and declare it officially stable.
The main reason behind this is that I’m currently working on PHPUnit 9 support, and this will force me to release a new minor that will drop support for previous PHPUnit version altogether. This decision was in reality forced onto me due to the fact that PHUnit 9 drops support for the --printer CLI option and the relative extension point, which Paraunit was using as a way to extract test results.
I returned to develop some more on Paraunit in the last months, initially to add a few new compatibilities (PHP 7.4, Symfony 5), but then I spent some time to add support for Pcov as a coverage driver. This new addition is pretty interesting, since it speeds up test execution with coverage collection a lot, making it nearly as fast as without coverage. Try it out!
This is the full changelog for this second beta release:
After a long hiatus, I decided to start working in the first stable release of Paraunit; the package is good and running smoothly for years, so we no longer have any reason to delay the 1.0 further. This will also be the occasion to force some static analysis onto the codebase.
This is the full changelog for this first beta release; the following changes are in comparison to the previous, unstable release (0.
Today I released a new small patch for Paraunit, fixing the support for a hidden dependency (phpunit/php-file-iterator) which broke Paraunit with its 2.0 release.
Here’s the full changelog:
Fixed Allow explicitly phpunit/php-file-iterator 2 #126
Today I released a new small patch for Paraunit, fixing an output bug and intercepting a new king of retryable exception.
Here’s the full changelog:
Fixed Allow multiple, comma-separated values with the --testsuite option, like with PHPUnit 6+ #122 Avoid letting the colored console output blink (dots, errors) #124 thanks to @elegos Add a new exception about MySQL savepoint to the retryable ones #125
With this release, I had to do some under-the-hood changes, but we finally support PHPUnit 7; to do that I had to bump the minimum PHP required version to 7.1. I’ve also added a better support for text coverage report, adding the possibility of obtaining just the summary report.
Here’s the full changelog:
Added Added support for PHPUnit 7 and phpunit/php-code-coverage 6 Changed The coverage text output options have changed: The --text option now accepts a filename as an argument, and defaults to the console as output (replacing --text-to-console) The new --text-summary option behaves in the same way, but it writes only the summary part Removed Removed support for PHP 7.
I had to release a fast fix for a problem introduced in the 0.12 release, due to the new behavior of the --text and --text-summary options. At first, it seemed that having an option with an optional argument was impossible, but I was able to do that anyway, and it spured a PR to the Symfony Docs too!
Here’s the full changelog:
Fixed Fix the behavior of the new --text and --text-summary options (#121)
This releases has nothing big on the outside, but a lot of code rework under the hood. The DI has been completely migrated from YAML to PHP (so no more symfony/yaml) and support for Symfony 4 has been added; also, a small bug has been fixed.
Here’s the full changelog:
Added Added support for Symfony 4 Changed Migrated the whole DI configuration from YAML to PHP Require at least jean85/pretty-package-versions 1.
With this release, Paraunit replaces the suggestion of facile-it/paraunit-testcase with dama/doctrine-test-bundle; also there’s a new feature that will report any test failure due to deprecation warnings catched by the Symfony PHPUnit Bridge.
Here’s the full changelog:
Added Add support for deprecation warnings found by symfony/phpunit-bridge: failures and tests output are now reported Changed Start suggesting dama/doctrine-test-bundle instead of facile-it/paraunit-testcase, since it has been abandoned.
With this release, I’m grouping a few fixes and improvements that I collected in the past month. Mainly, I’ve fixed the --debug option and the --text-to-console coverage output. Also, now the logo is optional, and at the end of each line it’s printed a partial count of executed tests.
Here’s the full changelog:
Added Add official support to PHP 7.2 (added to Travis CI matrix) Add executed tests counter at the end of each line in output (#91) Changed The Shark logo is now optional; to show it at the top, use the --logo option The --debug output has been completely rewritten and now is more useful than ever!
Paraunit 0.9.1 has been released with a really small improvement: I wnated to show a pretty, short version string in the header, when launching Paraunit. I recently started using Ocramius’ package to do it, but it didn’t provide that feature, and he was adamant about not implementing it in the future.
So I decided to release an OSS package for this usage, Jean85/pretty-package-versions, available here: https://github.com/Jean85/pretty-package-versions/. Feel free to use it in your projects, as I’ve done inside Paraunit.
Paraunit 0.9.2 and Paraunit 0.8.3 has been released to fix a nasty little bug that I got reported to me: two dependencies were missing and the CI missed that due to the fact that both were required by dev dependencies.
I fixed that and backported the fix to the 0.8 series, since it was very easy to do.
Here’s the full changelog:
Fixed Add missing dependencies: symfony/yaml and symfony/stopwatch
After a long time and a lot of work, Paraunit 0.9 has been released. This release is a big step ahead: now Paraunit runs with PHPUnit 6, and support to older versions is dropped; this also means that the minimum supported PHP version is now 7.0, and the minimum version of the Symfony components is bumped to 2.7, since older versions are out of support since may.
All these changes brought along a lot of refactoring, and I took the occasion to sprinkle scalar and return types everywhere in the code (see #93); this was also behind a blog post of mine that I wrote in response to the “visual debt” controversy.
Paraunit 0.8.2 has been released to fix an issued caused by an unwanted overwrite of the write() method in the LogWriter class. Full changelog:
Fixed Fix the signature of LogPrinter, to avoid warnings (this would lead to no test execution when considering warnings as test failures)
Paraunit 0.8.1 has been released to fix a small regression that happens when running functional tests in a Symfony project:
Fixed Fix #88: write the temporary configuration file in the same dir of the original, to avoid issue with Symfony when it guesses its kernel dir
Paraunit 0.8 has been released! With this release I added the continuous integration: at each Git tag, the Travis build prepares, signs and uploads to the GitHub releases page Paraunit’s PHAR. Thanks to Andreas Heigl that made this not only possible, but very straightforward to implement.
Next phase will be the 1.0 stable release milestone, which is probably just a little away. This release paved the way to the PHPUnit 6 support, with the new LogPrinter brought from PHPUnit.
Paraunit 0.7.4 has just been released. This patch version add a simple but very useful functionality, the string filtering of tests.
Full changelog text:
Changed Add optional argument to both commands to filter tests filenames; the filter is case insensitive and doesn’t rely on paths, so it doesn’t have to be a full or relative path; it can also be used in conjunction with the --testsuite option
Paraunit 0.7.3 has just been released, and from now on with a PHAR version too, GPG signed! You will always be able to download it from the latest GitHub release page.
Full changelog text:
Changed Add PHAR generation tools (thanks @taueres for the previous PR); from now on, Paraunit is released as a PHAR too!
Paraunit 0.7.1 has just been released; this is just a minor release that adds a new useful feature: the text format for the coverage. You can either use it on screen as an integration tool (see Jenkins, GitLab), or save it as a file. Since there is a small limitation in CLI options handling by the Symfony component, this feature is implemented through two separate options.
In the next versions, I will work to implement the other missing formats, PHP and Crap4j.
Paraunit 0.7.2 has just been released with a minor fix: colored output has been disabled from text coverage output to console, since it may cause incompatibilities. I will think of a way to re-enable it if possible in later releases.
Full changelog text:
Fixed Disable colored output in text coverage to console, to avoid issues with GitLab integration.
Finally, Paraunit 0.7 has been released! This version includes the long awaited coverage feature: now you can collect your test coverage running your tests in parallel!
Along with this new huge feature, here comes a lot of new fixes and changes: for example, now a lot of default PHPUnit options can be used and they will be passed along to the single PHPUnit processes that Paraunit spawns; also, now we officially support Windows, and we added an Appveyor CI build to do that.
Paraunit 0.6.2 has been released! This version include a fix in the choice of the dir for the partial test results, that caused issues while on non-Linux systems. Some minor fix are present too, and now Paraunit shows the right version when launched.
Also, since this release, all commits by me will be GPG signed!
Unfortunately, the coverage feature is still in the works, but it’s slowly going on; the feature is working, but release 0.
Paraunit 0.6.1 has been released! The main improvement on the user side is the extension of the Symfony package constraint, to allow the full 3.x series to be used with! The coverage feature is still in the works, I hope to release 0.7 with it this summer.
Here’s the full 0.6.1 changelog:
Changed Symfony compatibility has been extended to <4.0, since Symfony 3.1 has been released; we will rely on their BC promise A new approach for dockerfiles, now they will be based on the standard Docker PHP library.
Paraunit 0.6 has been released! In the meantime, the coverage feature is being developed on its branch, I hope to have it working soon and release it in 0.7.
Here’s what’s changed in 0.6:
Changed MASSIVE refactoring of the result output parsing (#31, #33) and the result printing (#37): now Paraunit fetches the tests’ results using PHPUnit’s --log-json option (thanks to @taueres for the idea). This grants a lot of new features: Parsing of tests results is more robust, it should never fail!
Paraunit 0.5 has been released! Here’s what’s changed:
Changed SQLite is now supported in the deadlock-recognition fase (issue #26, thanks @Algatux) Travis is testing on PHP 7.0, no more nightlies or allowed failures Symfony 3.0 components are now supported and compatible with Paraunit Retry parsing and management is improved Fixed Removed double generation of MD5 hash of process
Paraunit 0.4.4 has been released! Here’s what’s changed:
Fixed Merged previous v0.4 branch, there were missing fixes in previous release
Paraunit 0.4.3 has been released! Here’s what’s changed:
Changed --configuration behaviour is now identical to the same option in PHPUnit: it can accept also a path without a filename, and has a -c shortcut (default filename is phpunit.xml.dist) (#19) Added -c shortcut to README
Paraunit 0.4.2 has been released! Here’s what’s changed:
Changed Unlocked supporto for PHPUnit >= 5.x README changed to suggest stable version of package in composer.json example Fixed Fixed: test stub for fatal errors fixed for HHVM & PHP7
Paraunit 0.4.1 has been released! Here’s what’s changed:
Changed Improved: --configuration parameter now has the -c shortcut Fixed Fixed: test with fatal errors are not mistaken (and printed twice) for unknown results in the final results