#!/bin/bash# Simple test coverage analysis for NimCode# Analyzes which public procs are covered by testsset -eecho "=== NimCode Test Coverage Analysis ==="echo ""# Source modules to analyzeMODULES=("src/nimcode/tui/tui.nim""src/nimcode/tui/input.nim""src/nimcode/tui/statusbar.nim""src/nimcode/cli/stream.nim")# Test filesTESTS=("tests/test_tui.nim""tests/test_statusbar.nim""tests/test_stream.nim""tests/test_input.nim")total_procs=0tested_procs=0for module in "${MODULES[@]}"; doif [ ! -f "$module" ]; thencontinuefimodule_name=$(basename "$module" .nim)echo "--- $module_name ---"# Extract public proc names (starting with lowercase after proc)procs=$(grep -E "^proc \w+\*" "$module" 2>/dev/null | sed 's/proc \([a-zA-Z0-9_]*\).*/1円/' || true)if [ -z "$procs" ]; thenecho " No public procs found"echo ""continuefimodule_total=0module_tested=0while IFS= read -r proc_name; doif [ -z "$proc_name" ]; thencontinuefimodule_total=$((module_total + 1))total_procs=$((total_procs + 1))# Check if proc is referenced in any test filefound=falsefor test_file in "${TESTS[@]}"; doif [ -f "$test_file" ] && grep -q "$proc_name" "$test_file" 2>/dev/null; thenfound=truebreakfidoneif [ "$found" = true ]; thenecho " ✓ $proc_name"module_tested=$((module_tested + 1))tested_procs=$((tested_procs + 1))elseecho " ✗ $proc_name"fidone <<< "$procs"if [ $module_total -gt 0 ]; thencoverage=$((module_tested * 100 / module_total))echo " Coverage: $module_tested/$module_total ($coverage%)"fiecho ""doneecho "=== Summary ==="if [ $total_procs -gt 0 ]; thenoverall_coverage=$((tested_procs * 100 / total_procs))echo "Total public procs: $total_procs"echo "Tested procs: $tested_procs"echo "Overall coverage: $overall_coverage%"elseecho "No public procs found to analyze"fi
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。