‪TYPO3CMS  10.4
SplitFunctionalTests Class Reference

Public Member Functions

 execute ()
 

Private Member Functions

InputDefinition getInputDefinition ()
 
 createPhpunitXmlHeader (int $numberOfChunks)
 
 createPhpunitXmlFooter (int $numberOfChunks)
 

Detailed Description

This script is typically executed by runTests.sh.

The script expects to be run from the core root: ./Build/Scripts/splitFunctionalTests.php <numberOfChunks>

Verbose output with 8 chunks: ./Build/Scripts/splitFunctionalTests.php 8 -v

It's purpose is to find all core functional tests and split them into pieces. In CI, there are for example 8 jobs for the functional tests and each picks one chunk of tests. This way, functional tests are run in parallel and thus reduce the overall runtime of the test suite.

phpunit .xml config files including their specific set of tests are written to: Build/Scripts/FunctionalTests-Job-<counter>.xml

Definition at line 56 of file splitFunctionalTests.php.

Member Function Documentation

◆ createPhpunitXmlFooter()

SplitFunctionalTests::createPhpunitXmlFooter ( int  $numberOfChunks)
private

"Footer" part of a phpunit.xml functional config file

Parameters
int$numberOfChunks

Definition at line 218 of file splitFunctionalTests.php.

Referenced by execute().

◆ createPhpunitXmlHeader()

SplitFunctionalTests::createPhpunitXmlHeader ( int  $numberOfChunks)
private

"Header" part of a phpunit.xml functional config file

Parameters
int$numberOfChunks

Definition at line 187 of file splitFunctionalTests.php.

Referenced by execute().

◆ execute()

SplitFunctionalTests::execute ( )

Main entry method

Definition at line 61 of file splitFunctionalTests.php.

References $output, $parser, createPhpunitXmlFooter(), createPhpunitXmlHeader(), and getInputDefinition().

◆ getInputDefinition()

InputDefinition SplitFunctionalTests::getInputDefinition ( )
private

Allowed script arguments

Returns
‪InputDefinition argv input definition of symfony console

Definition at line 174 of file splitFunctionalTests.php.

Referenced by execute().