@@ -344,28 +344,49 @@ validate_unit_test_results() {
344
344
local old_pwd=$( pwd)
345
345
cd " $work_dir " || return 1
346
346
347
- # First run validation with pretty-print for detailed output
348
- local validation_output
347
+ # Always run validation with pretty-print first for detailed output
348
+ local pretty_print_output
349
349
log_info " → Running test result validation with detailed output..."
350
- if ! validation_output =$( dotnet " $QLT_BINARY " test run validate-unit-tests --pretty-print --results-directory " $results_dir " 2>&1 ) ; then
351
- log_error " Test result validation failed for $language "
352
- log_error " Detailed validation output:"
353
- echo " $validation_output "
350
+ if ! pretty_print_output =$( dotnet " $QLT_BINARY " test run validate-unit-tests --pretty-print --results-directory " $results_dir " 2>&1 ) ; then
351
+ log_error " Pretty-print validation failed for $language "
352
+ log_error " Pretty-print validation output:"
353
+ echo " $pretty_print_output "
354
354
cd " $old_pwd "
355
355
return 1
356
356
fi
357
357
358
358
log_info " Validation output for $language :"
359
- echo " $validation_output "
360
-
361
- # Also run the standard validation (without pretty-print) for exit code
362
- local standard_validation_output
363
- if ! standard_validation_output=$( dotnet " $QLT_BINARY " test run validate-unit-tests --results-directory " $results_dir " 2>&1 ) ; then
364
- log_error " Standard validation check failed for $language "
365
- log_error " Standard validation output:"
366
- echo " $standard_validation_output "
359
+ echo " $pretty_print_output "
360
+
361
+ # Parse the pretty-print output to determine if tests actually passed
362
+ local pass_count
363
+ pass_count=$( echo " $pretty_print_output " | grep -c " ✅ \[PASS\]" || true)
364
+ local fail_count
365
+ fail_count=$( echo " $pretty_print_output " | grep -c " ❌ \[FAIL\]" || true)
366
+
367
+ # Ensure we have numeric values
368
+ [[ -z " $pass_count " ]] && pass_count=0
369
+ [[ -z " $fail_count " ]] && fail_count=0
370
+
371
+ local total_tests=$(( pass_count + fail_count))
372
+
373
+ if [[ $total_tests -eq 0 ]]; then
374
+ log_warning " No test results found in pretty-print output for $language "
375
+ log_info " → Running standard validation as fallback..."
376
+ local standard_output
377
+ if ! standard_output=$( dotnet " $QLT_BINARY " test run validate-unit-tests --results-directory " $results_dir " 2>&1 ) ; then
378
+ log_error " Standard validation also failed for $language "
379
+ log_error " Standard validation output:"
380
+ echo " $standard_output "
381
+ cd " $old_pwd "
382
+ return 1
383
+ fi
384
+ elif [[ $fail_count -gt 0 ]]; then
385
+ log_error " Test validation failed for $language : $fail_count failed out of $total_tests tests"
367
386
cd " $old_pwd "
368
387
return 1
388
+ else
389
+ log_info " All tests passed for $language : $pass_count out of $total_tests tests"
369
390
fi
370
391
371
392
cd " $old_pwd "
0 commit comments