@@ -344,28 +344,49 @@ validate_unit_test_results() {
344344 local old_pwd=$( pwd)
345345 cd " $work_dir " || return 1
346346
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
349349 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 "
354354 cd " $old_pwd "
355355 return 1
356356 fi
357357
358358 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"
367386 cd " $old_pwd "
368387 return 1
388+ else
389+ log_info " All tests passed for $language : $pass_count out of $total_tests tests"
369390 fi
370391
371392 cd " $old_pwd "
0 commit comments