@@ -286,9 +286,8 @@ private Dictionary<string, List<string>> GroupByNamespaceLevel(List<string> test
286286
287287 foreach ( var test in tests )
288288 {
289- // Strip parameters from parameterized tests: "Namespace.Class.Method(params)" -> "Namespace.Class.Method"
290- var baseName = GetTestBaseName ( test ) ;
291- var parts = baseName . Split ( '.' ) ;
289+ // Split on . and _ to handle various naming conventions
290+ var parts = GetTestNameParts ( test ) ;
292291 var prefix = string . Join ( "." , parts . Take ( Math . Min ( level + 1 , parts . Length ) ) ) ;
293292
294293 if ( ! groups . ContainsKey ( prefix ) )
@@ -300,13 +299,23 @@ private Dictionary<string, List<string>> GroupByNamespaceLevel(List<string> test
300299 return groups ;
301300 }
302301
302+ private static readonly char [ ] NameSeparators = [ '.' , '_' , ',' ] ;
303+
303304 private static string GetTestBaseName ( string testName )
304305 {
305306 // Strip parameters: "Namespace.Class.Method(param1, param2)" -> "Namespace.Class.Method"
306307 var parenIndex = testName . IndexOf ( '(' ) ;
307308 return parenIndex > 0 ? testName [ ..parenIndex ] : testName ;
308309 }
309310
311+ private static string [ ] GetTestNameParts ( string testName )
312+ {
313+ // Strip parameters first
314+ var baseName = GetTestBaseName ( testName ) ;
315+ // Split on . and _ to handle both "Namespace.Class.Method" and "Array_includes_length"
316+ return baseName . Split ( NameSeparators , StringSplitOptions . RemoveEmptyEntries ) ;
317+ }
318+
310319 private void MarkCompletedPrefixes ( List < string > allTests , HashSet < string > passed )
311320 {
312321 // Group all tests by namespace prefixes at each level
@@ -317,8 +326,7 @@ private void MarkCompletedPrefixes(List<string> allTests, HashSet<string> passed
317326
318327 foreach ( var test in allTests )
319328 {
320- var baseName = GetTestBaseName ( test ) ;
321- var parts = baseName . Split ( '.' ) ;
329+ var parts = GetTestNameParts ( test ) ;
322330 for ( var i = 1 ; i <= parts . Length ; i ++ )
323331 {
324332 var prefix = string . Join ( "." , parts . Take ( i ) ) ;
@@ -330,8 +338,7 @@ private void MarkCompletedPrefixes(List<string> allTests, HashSet<string> passed
330338
331339 foreach ( var test in passed )
332340 {
333- var baseName = GetTestBaseName ( test ) ;
334- var parts = baseName . Split ( '.' ) ;
341+ var parts = GetTestNameParts ( test ) ;
335342 for ( var i = 1 ; i <= parts . Length ; i ++ )
336343 {
337344 var prefix = string . Join ( "." , parts . Take ( i ) ) ;
0 commit comments