diff options
| author | Li Jin <dragon-fly@qq.com> | 2026-02-06 06:32:06 +0000 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2026-02-06 06:32:06 +0000 |
| commit | cfba0fb6368ceae9489bcbfeaabc75b04bdcaeb6 (patch) | |
| tree | 157485438aab0aaadfb5a55b15e0c393f391137c /spec/cli/run_all_tests.sh | |
| parent | b018d86d32f0160006aaf9930d8d61b7eacefda4 (diff) | |
| download | yuescript-cfba0fb6368ceae9489bcbfeaabc75b04bdcaeb6.tar.gz yuescript-cfba0fb6368ceae9489bcbfeaabc75b04bdcaeb6.tar.bz2 yuescript-cfba0fb6368ceae9489bcbfeaabc75b04bdcaeb6.zip | |
test: improve CLI test summary table formatting
Optimize test results display for better readability:
- Use ASCII box characters for better terminal compatibility
- Improve column alignment and spacing
- Remove redundant symbols in status column (PASS/FAIL only)
- Left-align labels, right-align numbers in statistics table
- Add color-coded pass rate (green 100%, yellow 80%+, red <80%)
- Enhance final verdict section with indentation
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to '')
| -rwxr-xr-x | spec/cli/run_all_tests.sh | 66 |
1 files changed, 36 insertions, 30 deletions
diff --git a/spec/cli/run_all_tests.sh b/spec/cli/run_all_tests.sh index a095796..8e5fb6d 100755 --- a/spec/cli/run_all_tests.sh +++ b/spec/cli/run_all_tests.sh | |||
| @@ -110,16 +110,16 @@ run_test_suite "Execution Test" "$SCRIPT_DIR/test_execution.sh" | |||
| 110 | 110 | ||
| 111 | # Print detailed summary | 111 | # Print detailed summary |
| 112 | echo "" | 112 | echo "" |
| 113 | echo -e "${CYAN}╔════════════════════════════════════════════════════════╗" | 113 | echo -e "${BLUE}═══════════════════════════════════════════════════════════" |
| 114 | echo "║ YueScript CLI Test Results Summary ║" | 114 | echo " YueScript CLI Test Results Summary" |
| 115 | echo "╚════════════════════════════════════════════════════════╝${NC}" | 115 | echo "═══════════════════════════════════════════════════════════${NC}" |
| 116 | echo "" | 116 | echo "" |
| 117 | 117 | ||
| 118 | # Print per-suite statistics | 118 | # Print per-suite statistics |
| 119 | echo -e "${CYAN}Test Suite Details:${NC}" | 119 | echo -e "${CYAN}Test Suite Details:${NC}" |
| 120 | echo "┌────────────────────────────────┬────────┬────────┬────────┬──────────┐" | 120 | echo "┌──────────────────────────────┬───────┬────────┬────────┬─────────┐" |
| 121 | echo "│ Test Suite │ Total │ Passed │ Failed │ Status │" | 121 | echo "│ Test Suite │ Total │ Passed │ Failed │ Status │" |
| 122 | echo "├────────────────────────────────┼────────┼────────┼────────┼──────────┤" | 122 | echo "├──────────────────────────────┼───────┼────────┼────────┼─────────┤" |
| 123 | 123 | ||
| 124 | for ((i=0; i<TOTAL_SUITES; i++)); do | 124 | for ((i=0; i<TOTAL_SUITES; i++)); do |
| 125 | name="${SUITE_NAMES[$i]}" | 125 | name="${SUITE_NAMES[$i]}" |
| @@ -129,50 +129,56 @@ for ((i=0; i<TOTAL_SUITES; i++)); do | |||
| 129 | status="${SUITE_STATUS[$i]}" | 129 | status="${SUITE_STATUS[$i]}" |
| 130 | 130 | ||
| 131 | # Format suite name (truncate if too long) | 131 | # Format suite name (truncate if too long) |
| 132 | name_display=$(printf "%.30s" "$name") | 132 | name_display=$(printf "%.28s" "$name") |
| 133 | printf "│ %-30s │ %6d │ %6d │ %6d │ " "$name_display" $total $passed $failed | 133 | printf "│ %-28s │ %5d │ %6d │ %6d │ " "$name_display" $total $passed $failed |
| 134 | 134 | ||
| 135 | if [ "$status" = "PASS" ]; then | 135 | if [ "$status" = "PASS" ]; then |
| 136 | echo -e "${GREEN}✓ PASS ${NC}│" | 136 | echo -e "${GREEN}PASS ${NC}│" |
| 137 | else | 137 | else |
| 138 | echo -e "${RED}✗ FAIL ${NC}│" | 138 | echo -e "${RED}FAIL ${NC}│" |
| 139 | fi | 139 | fi |
| 140 | done | 140 | done |
| 141 | 141 | ||
| 142 | echo "└────────────────────────────────┴────────┴────────┴────────┴──────────┘" | 142 | echo "└──────────────────────────────┴───────┴────────┴────────┴─────────┘" |
| 143 | echo "" | 143 | echo "" |
| 144 | 144 | ||
| 145 | # Print overall statistics | 145 | # Print overall statistics |
| 146 | echo -e "${CYAN}Overall Statistics:${NC}" | 146 | echo -e "${CYAN}Overall Statistics:${NC}" |
| 147 | echo "┌─────────────────────────────────────────────────────────────────┐" | 147 | echo "┌────────────────────────────────────────────────────────────┐" |
| 148 | printf "│ Total Test Suites: %3d │\n" $TOTAL_SUITES | 148 | printf "│ Total Test Suites: %3d │\n" $TOTAL_SUITES |
| 149 | printf "│ Passed Test Suites: %3d │\n" $PASSED_SUITES | 149 | printf "│ Passed Test Suites: %3d │\n" $PASSED_SUITES |
| 150 | printf "│ Failed Test Suites: %3d │\n" $FAILED_SUITES | 150 | printf "│ Failed Test Suites: %3d │\n" $FAILED_SUITES |
| 151 | echo "├─────────────────────────────────────────────────────────────────┤" | 151 | echo "├────────────────────────────────────────────────────────────┤" |
| 152 | printf "│ Total Test Cases: %3d │\n" $TOTAL_TESTS | 152 | printf "│ Total Test Cases: %3d │\n" $TOTAL_TESTS |
| 153 | printf "│ Passed Test Cases: %3d │\n" $TOTAL_PASSED | 153 | printf "│ Passed Test Cases: %3d │\n" $TOTAL_PASSED |
| 154 | printf "│ Failed Test Cases: %3d │\n" $TOTAL_FAILED | 154 | printf "│ Failed Test Cases: %3d │\n" $TOTAL_FAILED |
| 155 | echo "└─────────────────────────────────────────────────────────────────┘" | 155 | echo "└────────────────────────────────────────────────────────────┘" |
| 156 | echo "" | ||
| 157 | 156 | ||
| 158 | # Calculate pass rate | 157 | # Calculate pass rate |
| 159 | if [ $TOTAL_TESTS -gt 0 ]; then | 158 | if [ $TOTAL_TESTS -gt 0 ]; then |
| 160 | pass_rate=$((TOTAL_PASSED * 100 / TOTAL_TESTS)) | 159 | pass_rate=$((TOTAL_PASSED * 100 / TOTAL_TESTS)) |
| 161 | echo -e "Overall Pass Rate: ${CYAN}$pass_rate%%${NC}" | 160 | printf " Overall Pass Rate: " |
| 162 | echo "" | 161 | if [ $pass_rate -eq 100 ]; then |
| 162 | echo -e "${GREEN}${pass_rate}%%${NC}" | ||
| 163 | elif [ $pass_rate -ge 80 ]; then | ||
| 164 | echo -e "${YELLOW}${pass_rate}%%${NC}" | ||
| 165 | else | ||
| 166 | echo -e "${RED}${pass_rate}%%${NC}" | ||
| 167 | fi | ||
| 163 | fi | 168 | fi |
| 169 | echo "" | ||
| 164 | 170 | ||
| 165 | # Final verdict | 171 | # Final verdict |
| 166 | echo -e "${BLUE}======================================" | 172 | echo -e "${BLUE}═══════════════════════════════════════════════════════════" |
| 167 | echo "Final Verdict" | 173 | echo " Final Verdict" |
| 168 | echo "======================================${NC}" | 174 | echo "═══════════════════════════════════════════════════════════${NC}" |
| 169 | 175 | ||
| 170 | if [ $FAILED_SUITES -eq 0 ]; then | 176 | if [ $FAILED_SUITES -eq 0 ]; then |
| 171 | echo -e "${GREEN}✓ All test suites passed!${NC}" | 177 | echo -e "${GREEN} ✓ All test suites passed!${NC}" |
| 172 | echo -e "${GREEN}✓ All $TOTAL_TESTS test cases passed!${NC}" | 178 | echo -e "${GREEN} ✓ All $TOTAL_TESTS test cases passed!${NC}" |
| 173 | exit 0 | 179 | exit 0 |
| 174 | else | 180 | else |
| 175 | echo -e "${RED}✗ $FAILED_SUITES test suite(s) failed${NC}" | 181 | echo -e "${RED} ✗ $FAILED_SUITES test suite(s) failed${NC}" |
| 176 | echo -e "${RED}✗ $TOTAL_FAILED test case(s) failed${NC}" | 182 | echo -e "${RED} ✗ $TOTAL_FAILED test case(s) failed${NC}" |
| 177 | exit 1 | 183 | exit 1 |
| 178 | fi | 184 | fi |
