paratestphp/paratest

The "--parallel-suite" option does not exist.

sebsnake opened this issue · 2 comments

Q A
ParaTest version 7.2.9
PHPUnit version 10.4.0
PHP version 8.2.10

Summary

The error mentioned in the title appears after updating PHPUnit from 9.x to 10.x and paratest from 6.x to 7.x.

Current behavior

The error message 'The "--parallel-suite" option does not exist.' is shown when trying to run paratest with this option.

How to reproduce: command, code and error stack trace

Run paratest with the --parallel-suite option.

Expected behavior

It should run the tests and parallelize based on the defined testsuites in the phpunit.xml config.

Additional notes

I already checked most commits, issue reports, tryed googling the issue, but can't seem to find any explanation, deprecation notice or anything else regarding this issue. As far as I can tell, this option got "lost" with the larger migration done to support PHPunit 10.
So I'm just asking: has this been removed by purpose or by accident? Will it stay removed?
Just to note, I'm sorry if it is really just me and I'm just to blind to find a certain info about it... :)

We have a (I would say) fairly large test base (13.000+ tests and counting) that require 4 Minutes with phpunit, but only 40 Seconds with our customized paratest config. However, tests are not optimal and testruns with the existing parameters (tested combinations with "functional", "processIsolation", "backupGlobals") do not result in a stable outcome of test runs. So it relies on this option flag.

I can confirm that v7 dropped --parallel-suite intentionally because:

  1. it doesn't fit the new code anymore.
  2. the only gain for using that option with paratest is result & cc merging

The cost/benefit ratio for impementing and maintaining it dropped too much below 1.

I suggest you to use multiple vendor/bin/phpunit --testsuite=SUITE_NAME calls in conjunction with parallel native binary.

This issue has gone two months without activity. In another two weeks, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Backlog or In Progress, I will leave it alone ... forever!