Allows you to split your PHPUnit tests by timings.
Generate a timing file:
phpunit --cache-result --results-files=.phpunit.cache/test-results*
List your tests:
phpunit --list-tests-xml=tests.xml
This generates an XML file with a list of tests. You can add --testsuite
to limit the tests to a specific suite.
Split the tests in 2 groups and get the first group (0):
phpunit-splitter 2 0 --tests-file=tests.xml --results-files=.phpunit.cache/test-results*
Split the tests in 4 groups and get the third group (2):
phpunit-splitter 4 2 --tests-file=tests.xml --results-files=.phpunit.cache/test-results*
Pass the results to PHPUnit:
./phpunit-splitter 2 0 --tests-file=tests/fixtures/tests.xml --results-files=.phpunit.cache/test-results* | xargs ./vendor/bin/phpunit
done
Output the test list as JSON:
./phpunit-splitter 2 0 --json --tests-file=tests/fixtures/tests.xml --results-files=.phpunit.cache/test-results*