feat(dev-scripts): ✨ Add automated stability test to dev.sh by booting the game, navigating to the world map, and capturing a screenshot after 20 seconds
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
1d56b77d4f
commit
8c365cf63d
1 changed files with 26 additions and 0 deletions
|
|
@ -80,9 +80,35 @@ cmd_test() {
|
|||
echo -e "${BLUE}Running vitest (guide)...${NC}"
|
||||
pnpm --prefix "$GUIDE_DIR" test || exit_code=$?
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}Running stability test (20s game boot)...${NC}"
|
||||
_run_stability_test || exit_code=$?
|
||||
|
||||
return $exit_code
|
||||
}
|
||||
|
||||
_run_stability_test() {
|
||||
# Uses the existing screenshot pipeline to boot the game, navigate to
|
||||
# world_map, wait 20s, and capture a screenshot. If the game crashes
|
||||
# before the screenshot is taken, the test fails.
|
||||
local STABILITY_LOG="$REPO_ROOT/.project/logs/stability_$(date +%Y%m%d_%H%M%S).log"
|
||||
mkdir -p "$(dirname "$STABILITY_LOG")"
|
||||
"$REPO_ROOT/tools/screenshot.sh" "stability_test" "world_map" "20" > "$STABILITY_LOG" 2>&1
|
||||
local RESULT=$?
|
||||
if [ $RESULT -ne 0 ]; then
|
||||
echo -e "${RED}FAIL: Stability test failed (exit code $RESULT)${NC}"
|
||||
tail -10 "$STABILITY_LOG" | grep -E "SCRIPT ERROR|ERROR:" | head -5
|
||||
return 1
|
||||
fi
|
||||
if grep -q "SCREENSHOT_PATH:" "$STABILITY_LOG"; then
|
||||
echo -e "${GREEN}PASS: Game stable for 20s, screenshot captured${NC}"
|
||||
return 0
|
||||
else
|
||||
echo -e "${RED}FAIL: Game ran but no screenshot captured${NC}"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
cmd_verify() {
|
||||
local -a step_names step_times step_results
|
||||
local overall_exit=0
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue