Our project has a listener that writes progress information using ANSI escape codes. Perhaps in order to avoid the output being captured by Surefire, it saves System.out to a field in its constructor, and uses the saved System.out reference to output progress information.
Since 3.0.0-M4, surefire has started replacing System.out earlier, so now it also captures the output of the listener. This wouldn't be a problem, except the listener's printf() calls are now written across multiple lines. E.g.
prints this during a test:
and this in the listener constructor:
I believe this is related to the POM using <parallel>classes</parallel> and <forkCount>1</forkCount>.
Here is a small project reproducing the issue: