@@ -264,7 +264,10 @@ Test Case '-[MyTests.MyTests`;
264
264
} ) ;
265
265
266
266
test ( "Suite" , ( ) => {
267
- const testRunState = new TestRunState ( [ "MyTests" , "MyTests.MyTests/testPass" ] , true ) ;
267
+ const testRunState = new TestRunState (
268
+ [ "MyTests.MyTests" , "MyTests.MyTests/testPass" ] ,
269
+ true
270
+ ) ;
268
271
const input = `Test Suite 'MyTests' started at 2024-08-26 13:19:25.325.
269
272
Test Case '-[MyTests.MyTests testPass]' started.
270
273
Test Case '-[MyTests.MyTests testPass]' passed (0.001 seconds).
@@ -273,19 +276,171 @@ Test Suite 'MyTests' passed at 2024-08-26 13:19:25.328.
273
276
` ;
274
277
outputParser . parseResult ( input , testRunState ) ;
275
278
279
+ const testOutput = inputToTestOutput ( input ) ;
276
280
assert . deepEqual ( testRunState . tests , [
277
281
{
278
- name : "MyTests" ,
279
- output : [ ] ,
282
+ name : "MyTests.MyTests " ,
283
+ output : [ testOutput [ 0 ] , testOutput [ 3 ] ] ,
280
284
status : TestStatus . passed ,
281
285
} ,
282
286
{
283
287
name : "MyTests.MyTests/testPass" ,
284
288
status : TestStatus . passed ,
285
289
timing : { duration : 0.001 } ,
286
- output : inputToTestOutput ( input ) . slice ( 1 , - 2 ) , // trim the suite text
290
+ output : [ testOutput [ 1 ] , testOutput [ 2 ] ] ,
291
+ } ,
292
+ ] ) ;
293
+ assert . deepEqual ( inputToTestOutput ( input ) , testRunState . allOutput ) ;
294
+ } ) ;
295
+
296
+ test ( "Empty Suite" , ( ) => {
297
+ const testRunState = new TestRunState ( [ ] , true ) ;
298
+ const input = `Test Suite 'Selected tests' started at 2024-10-19 15:23:29.594.
299
+ Test Suite 'EmptyAppPackageTests.xctest' started at 2024-10-19 15:23:29.595.
300
+ Test Suite 'EmptyAppPackageTests.xctest' passed at 2024-10-19 15:23:29.595.
301
+ Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.000) seconds
302
+ Test Suite 'Selected tests' passed at 2024-10-19 15:23:29.596.
303
+ Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.001) seconds
304
+ warning: No matching test cases were run` ;
305
+
306
+ outputParser . parseResult ( input , testRunState ) ;
307
+
308
+ assert . deepEqual ( testRunState . tests , [ ] ) ;
309
+ assert . deepEqual ( inputToTestOutput ( input ) , testRunState . allOutput ) ;
310
+ } ) ;
311
+
312
+ test ( "Multiple Suites" , ( ) => {
313
+ const testRunState = new TestRunState (
314
+ [
315
+ "MyTests.TestSuite1" ,
316
+ "MyTests.TestSuite1/testFirst" ,
317
+ "MyTests.TestSuite2" ,
318
+ "MyTests.TestSuite2/testSecond" ,
319
+ ] ,
320
+ true
321
+ ) ;
322
+ const input = `Test Suite 'All tests' started at 2024-10-20 21:54:32.568.
323
+ Test Suite 'EmptyAppPackageTests.xctest' started at 2024-10-20 21:54:32.570.
324
+ Test Suite 'TestSuite1' started at 2024-10-20 21:54:32.570.
325
+ Test Case '-[MyTests.TestSuite1 testFirst]' started.
326
+ Test Case '-[MyTests.TestSuite1 testFirst]' passed (0.000 seconds).
327
+ Test Suite 'TestSuite1' passed at 2024-10-20 21:54:32.570.
328
+ Executed 1 test, with 0 failures (0 unexpected) in 0.000 (0.001) seconds
329
+ Test Suite 'TestSuite2' started at 2024-10-20 21:54:32.570.
330
+ Test Case '-[MyTests.TestSuite2 testSecond]' started.
331
+ Test Case '-[MyTests.TestSuite2 testSecond]' passed (0.000 seconds).
332
+ Test Suite 'TestSuite2' passed at 2024-10-20 21:54:32.571.
333
+ Executed 1 test, with 0 failures (0 unexpected) in 0.000 (0.000) seconds
334
+ Test Suite 'EmptyAppPackageTests.xctest' passed at 2024-10-20 21:54:32.571.
335
+ Executed 2 tests, with 0 failures (0 unexpected) in 0.001 (0.001) seconds
336
+ Test Suite 'All tests' passed at 2024-10-20 21:54:32.571.
337
+ Executed 2 tests, with 0 failures (0 unexpected) in 0.001 (0.002) seconds` ;
338
+
339
+ outputParser . parseResult ( input , testRunState ) ;
340
+
341
+ const testOutput = inputToTestOutput ( input ) ;
342
+ assert . deepEqual ( testRunState . tests , [
343
+ {
344
+ name : "MyTests.TestSuite1" ,
345
+ output : [ testOutput [ 2 ] , testOutput [ 5 ] ] ,
346
+ status : "passed" ,
347
+ } ,
348
+ {
349
+ name : "MyTests.TestSuite1/testFirst" ,
350
+ output : [ testOutput [ 3 ] , testOutput [ 4 ] ] ,
351
+ status : "passed" ,
352
+ timing : {
353
+ duration : 0 ,
354
+ } ,
355
+ } ,
356
+ {
357
+ name : "MyTests.TestSuite2" ,
358
+ output : [ testOutput [ 7 ] , testOutput [ 10 ] ] ,
359
+ status : "passed" ,
360
+ } ,
361
+ {
362
+ name : "MyTests.TestSuite2/testSecond" ,
363
+ output : [ testOutput [ 8 ] , testOutput [ 9 ] ] ,
364
+ status : "passed" ,
365
+ timing : {
366
+ duration : 0 ,
367
+ } ,
368
+ } ,
369
+ ] ) ;
370
+ assert . deepEqual ( inputToTestOutput ( input ) , testRunState . allOutput ) ;
371
+ } ) ;
372
+
373
+ test ( "Multiple Suites with Failed Test" , ( ) => {
374
+ const testRunState = new TestRunState (
375
+ [
376
+ "MyTests.TestSuite1" ,
377
+ "MyTests.TestSuite1/testFirst" ,
378
+ "MyTests.TestSuite2" ,
379
+ "MyTests.TestSuite2/testSecond" ,
380
+ ] ,
381
+ true
382
+ ) ;
383
+ const input = `Test Suite 'Selected tests' started at 2024-10-20 22:01:46.206.
384
+ Test Suite 'EmptyAppPackageTests.xctest' started at 2024-10-20 22:01:46.207.
385
+ Test Suite 'TestSuite1' started at 2024-10-20 22:01:46.207.
386
+ Test Case '-[MyTests.TestSuite1 testFirst]' started.
387
+ Test Case '-[MyTests.TestSuite1 testFirst]' passed (0.000 seconds).
388
+ Test Suite 'TestSuite1' passed at 2024-10-20 22:01:46.208.
389
+ Executed 1 test, with 0 failures (0 unexpected) in 0.000 (0.000) seconds
390
+ Test Suite 'TestSuite2' started at 2024-10-20 22:01:46.208.
391
+ Test Case '-[MyTests.TestSuite2 testSecond]' started.
392
+ /Users/user/Developer/MyTests/MyTests.swift:13: error: -[MyTests.TestSuite2 testSecond] : failed
393
+ Test Case '-[MyTests.TestSuite2 testSecond]' failed (0.000 seconds).
394
+ Test Suite 'TestSuite2' failed at 2024-10-20 22:01:46.306.
395
+ Executed 1 test, with 1 failure (0 unexpected) in 0.000 (0.000) seconds
396
+ Test Suite 'EmptyAppPackageTests.xctest' failed at 2024-10-20 22:01:46.306.
397
+ Executed 2 tests, with 1 failure (0 unexpected) in 0.001 (0.001) seconds
398
+ Test Suite 'Selected tests' failed at 2024-10-20 22:01:46.306.
399
+ Executed 2 tests, with 1 failure (0 unexpected) in 0.002 (0.002) seconds` ;
400
+ outputParser . parseResult ( input , testRunState ) ;
401
+
402
+ const testOutput = inputToTestOutput ( input ) ;
403
+ assert . deepEqual ( testRunState . tests , [
404
+ {
405
+ name : "MyTests.TestSuite1" ,
406
+ output : [ testOutput [ 2 ] , testOutput [ 5 ] ] ,
407
+ status : "passed" ,
408
+ } ,
409
+ {
410
+ name : "MyTests.TestSuite1/testFirst" ,
411
+ output : [ testOutput [ 3 ] , testOutput [ 4 ] ] ,
412
+ status : "passed" ,
413
+ timing : {
414
+ duration : 0 ,
415
+ } ,
416
+ } ,
417
+ {
418
+ name : "MyTests.TestSuite2" ,
419
+ output : [ testOutput [ 7 ] , testOutput [ 11 ] ] ,
420
+ status : "failed" ,
421
+ } ,
422
+ {
423
+ name : "MyTests.TestSuite2/testSecond" ,
424
+ output : [ testOutput [ 8 ] , testOutput [ 9 ] , testOutput [ 10 ] ] ,
425
+ status : "failed" ,
426
+ timing : {
427
+ duration : 0 ,
428
+ } ,
429
+ issues : [
430
+ {
431
+ message : "failed" ,
432
+ location : sourceLocationToVSCodeLocation (
433
+ "/Users/user/Developer/MyTests/MyTests.swift" ,
434
+ 13 ,
435
+ 0
436
+ ) ,
437
+ isKnown : false ,
438
+ diff : undefined ,
439
+ } ,
440
+ ] ,
287
441
} ,
288
442
] ) ;
443
+ assert . deepEqual ( inputToTestOutput ( input ) , testRunState . allOutput ) ;
289
444
} ) ;
290
445
291
446
suite ( "Diffs" , ( ) => {
0 commit comments