@@ -226,6 +226,57 @@ public function testNonExistentSuiteTestPair()
226226 $ this ->assertArrayHasKey ('Suite3 ' , $ suiteErrors );
227227 }
228228
229+ /**
230+ * Tests generating split suites for parallel test generation
231+ */
232+ public function testGenerateSplitSuiteFromTest ()
233+ {
234+ $ suiteDataArrayBuilder = new SuiteDataArrayBuilder ();
235+ $ mockSuiteData = $ suiteDataArrayBuilder
236+ ->withName ('mockSuite ' )
237+ ->includeGroups (['group1 ' ])
238+ ->build ();
239+ $ testDataArrayBuilder = new TestDataArrayBuilder ();
240+ $ mockSimpleTest1 = $ testDataArrayBuilder
241+ ->withName ('simpleTest1 ' )
242+ ->withAnnotations (['group ' => [['value ' => 'group1 ' ]]])
243+ ->withTestReference ("NonExistantTest " )
244+ ->withTestActions ()
245+ ->build ();
246+ $ mockSimpleTest2 = $ testDataArrayBuilder
247+ ->withName ('simpleTest2 ' )
248+ ->withAnnotations (['group ' => [['value ' => 'group1 ' ]]])
249+ ->withTestActions ()
250+ ->build ();
251+ $ mockSimpleTest3 = $ testDataArrayBuilder
252+ ->withName ('simpleTest3 ' )
253+ ->withAnnotations (['group ' => [['value ' => 'group1 ' ]]])
254+ ->withTestActions ()
255+ ->build ();
256+ $ mockTestData = array_merge ($ mockSimpleTest1 , $ mockSimpleTest2 , $ mockSimpleTest3 );
257+ $ this ->setMockTestAndSuiteParserOutput ($ mockTestData , $ mockSuiteData );
258+
259+ // Make manifest for split suites
260+ $ suiteConfig = [
261+ 'mockSuite ' => [
262+ 'mockSuite_0_G ' => ['simpleTest1 ' , 'simpleTest2 ' ],
263+ 'mockSuite_1_G ' => ['simpleTest3 ' ],
264+ ],
265+ ];
266+ $ manifest = TestManifestFactory::makeManifest ('default ' , $ suiteConfig );
267+
268+ // parse and generate suite object with mocked data and manifest
269+ $ mockSuiteGenerator = SuiteGenerator::getInstance ();
270+ $ mockSuiteGenerator ->generateAllSuites ($ manifest );
271+
272+ // assert last split suite group generated
273+ TestLoggingUtil::getInstance ()->validateMockLogStatement (
274+ 'info ' ,
275+ "suite generated " ,
276+ ['suite ' => 'mockSuite_1_G ' , 'relative_path ' => "_generated " . DIRECTORY_SEPARATOR . "mockSuite_1_G " ]
277+ );
278+ }
279+
229280 /**
230281 * Function used to set mock for parser return and force init method to run between tests.
231282 *
0 commit comments