@@ -226,6 +226,57 @@ public function testNonExistentSuiteTestPair()
226
226
$ this ->assertArrayHasKey ('Suite3 ' , $ suiteErrors );
227
227
}
228
228
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
+
229
280
/**
230
281
* Function used to set mock for parser return and force init method to run between tests.
231
282
*
0 commit comments