-
Notifications
You must be signed in to change notification settings - Fork 504
Description
The PR #817 introduced a new configuration file for PHPUnit 10, separate from the previous configuration file. In order to run tests against PHPUnit 10, you now have to run composer test10
instead of only composer test
.
It would be preferable to have only a singular entry point of composer test
that is smart enough to run PHPUnit against the right configuration file.
While looking into this, we've found that PHPUnit has a very convenient flag --atleast-version <version>
which could be used to run the tests conditionally. So, the idea is to have something like this (simplified):
"test": [
"phpunit --atleast-version 10 && phpunit -c phpunit10.xml.dist --no-coverage",
"phpunit --atleast-version 10 || phpunit --no-coverage"
],
That should generally work.
However, we have yet to find a way to combine this with the use of @php
to reuse the exact PHP process that Composer is running under. According to the Composer documentation, you cannot combine multiple commands like this:
One limitation of this is that you can not call multiple commands in a row like @php install && @php foo. You must split them up in a JSON array of commands.
This is why PR #817 has separate Composer scripts at this point: composer test
& composer test10
.
This goes against Composer conventions and requires the user to know details about the test flow and dependencies in order to run the tests.