CLI
| Command | |
|---|---|
aego check [dir] [--manifest file] [--explain code] |
type-check every script package against engine and native bindings |
aego test [dir] [-run name] [-v] [-budget n] [-seed n] |
run TestXxx() functions from *_test.aes headless |
aego dump script <pkg|Type> [--func name] [--project dir] |
bytecode with ; file:line source comments; the header lists imports, externs, enums, signals, script refs, cross-script fields and methods, and connections |
aego run [dir] |
refuses to start while a script package has errors |
All of them use the same workspace as the editor and hot reload. check and dump use the bindings manifest. For a project with native/, a small helper that only calls the module's Register writes it to .aego/cache/script-bindings; it is rebuilt when native/*.go, go.mod/go.sum or the engine change. A native compile error or a failing Register is exit code 2. test on a project with native/ builds the game binary and runs the tests inside it, because tests call the real native functions.
Test functions are package functions; they have no scene, so coroutines, signals and script references are tested in play, not in _test.aes. _test.aes files are compiled only by aego test; they never enter Play or exported builds. A test that loops forever ends with AES6001 and the next test runs.