chore: install gut quality suite
This commit is contained in:
@@ -15,6 +15,13 @@ parser errors, and LLM-generated garbage before committing.
|
||||
|
||||
On Windows, use `.venv/Scripts/python.exe` for the `--python` value.
|
||||
- **Godot 4** binary on `PATH`, or set the `GODOT_BIN` environment variable
|
||||
- **GUT 9.7.1** is vendored under `addons/gut` for Godot 4.7. No separate
|
||||
package-manager install is needed.
|
||||
|
||||
The vendored addon comes from the official
|
||||
[`bitwes/Gut` v9.7.1 release](https://github.com/bitwes/Gut/releases/tag/v9.7.1).
|
||||
The downloaded release archive SHA-256 is
|
||||
`14969aa46adc84aa08cdd21b9f6d1a64addd92ae60b36f02d0521ed305aa4086`.
|
||||
|
||||
The quality and format scripts discover `.venv` automatically; activating it
|
||||
is optional.
|
||||
@@ -51,11 +58,12 @@ The Godot dependency check and all project scenarios still run.
|
||||
|
||||
| Check | Tool | What it detects |
|
||||
|---|---|---|
|
||||
| **godot-import** | Godot 4.7 headless importer | Missing or stale global `class_name` cache on fresh clones |
|
||||
| **gdformat** | Game-owned GDScript roots | Formatting without rewriting addons or demos |
|
||||
| **gdlint** | Game-owned GDScript roots | Lint violations such as unused arguments and naming |
|
||||
| **godot-check** | Headless definitions scenario | Parser errors and missing dependencies |
|
||||
| **scenarios** | Every `tests/*_test.gd` script | Simulation, persistence, navigation, and presentation regressions |
|
||||
| **gut** | `godot -s gut_cmdln.gd` | Failing GUT unit tests (only if addon exists) |
|
||||
| **gut** | Vendored GUT 9.7.1 CLI | Focused unit regressions under `tests/unit/` |
|
||||
|
||||
## Output
|
||||
|
||||
@@ -64,11 +72,12 @@ If everything passes:
|
||||
```
|
||||
QUALITY RESULT: PASS
|
||||
|
||||
godot-import PASS
|
||||
gdformat PASS
|
||||
gdlint PASS
|
||||
godot-check PASS
|
||||
scenarios PASS
|
||||
gut SKIPPED
|
||||
gut PASS
|
||||
|
||||
Full logs:
|
||||
logs/quality/latest/
|
||||
@@ -79,11 +88,12 @@ On failure, only relevant errors and fix suggestions are shown:
|
||||
```
|
||||
QUALITY RESULT: FAIL
|
||||
|
||||
godot-import PASS
|
||||
gdformat FAIL
|
||||
gdlint FAIL
|
||||
godot-check PASS
|
||||
scenarios PASS
|
||||
gut SKIPPED
|
||||
gut PASS
|
||||
|
||||
res://simulation/SimNPC.gd:42 Unused argument 'delta'
|
||||
res://simulation/task_manager.gd:88 Line too long (120 > 100)
|
||||
@@ -117,6 +127,8 @@ python -m pip install -r requirements-dev.txt
|
||||
The script exits non-zero on any failure, so it will fail the CI step.
|
||||
|
||||
The shell gate isolates Godot's cross-platform user-data paths under
|
||||
`logs/quality/godot_profile`. It also treats Godot script parse/load markers as
|
||||
failures because headless Godot can report those errors while returning a zero
|
||||
process exit code.
|
||||
`logs/quality/godot_profile`. Before running scenarios it imports project and
|
||||
GUT global classes when the ignored cache is absent, so a fresh clone needs no
|
||||
manual editor launch. Godot/GUT script parse or load markers are failures
|
||||
because headless Godot can report those errors while returning a zero process
|
||||
exit code.
|
||||
|
||||
Reference in New Issue
Block a user