CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/godot-gut-tests

Author and run GUT (Godot Unit Test) - the community-canonical GDScript test framework at github.com/bitwes/Gut and gut.readthedocs.io. Covers install (Godot Asset Library or manual `addons/gut/` copy + plugin enable), GUT panel inside the editor, writing tests that extend GutTest with `test_` prefix methods, the assertion family (assert_eq / assert_almost_eq / assert_true / assert_signal_emitted), lifecycle hooks (before_each / after_each / before_all / after_all), inner classes for grouping, parameterized tests via `params=[...]`, doubles / stubs / spies, async / coroutine tests, the command-line runner (`-d -s addons/gut/gut_cmdln.gd -gdir=res://test -gjunit_xml_file=... -gexit`), JUnit XML export, and CI integration. Godot 4.x uses GUT 9.x (current main branch supports 4.6.x; godot_4_7 branch for 4.7.x); Godot 3.x uses GUT 7.x. Use when the unit under test is GDScript code in a Godot project.

72

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

86%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, highly actionable skill body: executable examples for every GUT feature, a logical install-to-CI arc, anti-pattern error recovery, and exemplary progressive disclosure into three appropriately scoped reference files. Remaining polish is minor — deduplicating the C# guidance and adding an explicit post-authoring validation step.

Suggestions

State the C#/.NET (xUnit, NUnit) guidance once — either in 'When to use' or 'Limitations' — instead of repeating it in both sections.

Add an explicit validation checkpoint after the authoring examples, e.g., 'Run the new test script via the GUT panel or -gtest=res://test/unit/test_health.gd to confirm the runner discovers it before building out the suite.'

Trim the prose sentence restating the doubles example ('double(path) produces a fake script; stub(...).to_return(value) configures return values; assert_called(...) is the spy assertion') since the preceding code already demonstrates it.

DimensionReasoningScore

Conciseness

Largely efficient — the body is mostly tables, code, and dense actionable prose with no tutorial-style padding (no 'what is unit testing' explanation). Not 5 due to minor trimmable content: the C#/xUnit guidance appears twice ('For pure-C# tests inside Godot's C# scripting layer, use .NET-canonical test runners' and again in Limitations), and a few lines restate what the preceding code example already shows (e.g., 'double(path) produces a fake script; stub(...).to_return(value) configures return values'). Not 3 because the over-explanation is minor and most tokens carry non-obvious, GUT-specific information.

4 / 5

Actionability

Fully executable, copy-paste-ready guidance throughout: complete GDScript test examples (minimal, lifecycle, inner classes, use_parameters, double/stub/spy, await), a concrete bash CLI invocation ('godot --headless -d -s addons/gut/gut_cmdln.gd -gdir=res://test -gjunit_xml_file=... -gexit'), numbered install steps, and a full GitHub Actions workflow in references/ci.md. Specific examples cover the common cases for each sub-topic. Not 4 because there are no pseudocode placeholders or missing key details.

5 / 5

Workflow Clarity

Clear logical sequence — Install → Project layout → Authoring (tests, hooks, doubles, async) → Running (panel/CLI) → Parsing results → CI — with the anti-patterns table serving as explicit error-recovery guidance (failure mode → why → fix) and the JUnit XML positioned as the validation source of truth ('parse the JUnit XML for failures>0'). Not 5 because the authoring flow lacks an explicit validate checkpoint (e.g., 'run the new test to confirm the runner discovers it before adding more'), and the CI section defers verification wiring entirely to the reference. Not 3 because checkpoints (re-launch editor after enable, -gexit/-gexit anti-patterns, XML-based failure detection) are mostly present.

4 / 5

Progressive Disclosure

The body is a well-organized overview that keeps core knowledge inline (common assertions, the primary CLI command, JUnit XML shape summary) and defers bulk detail to three real, clearly signaled, one-level-deep references: 'The full assertion table is in references/assertions.md', 'The full CLI flag table and the .gutconfig.json config schema are in references/cli.md', and 'The full XML shape... A complete GitHub Actions workflow... is in references/ci.md'. Verified against the actual bundle: all three files exist and do not nest further skill-file references. Matches the anchor for clear overview with well-signaled one-level-deep references.

5 / 5

Total

18

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: third-person, comprehensive in concrete capabilities, with an explicit 'Use when' trigger clause and unambiguous scoping to GDScript/Godot. The only gap is a handful of natural synonyms (mock, .gd) that would broaden trigger matching.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete actions with near-comprehensive coverage: 'install (Godot Asset Library or manual addons/gut/ copy + plugin enable)', 'writing tests that extend GutTest with test_ prefix methods', 'the assertion family (assert_eq / assert_almost_eq / assert_true / assert_signal_emitted)', 'lifecycle hooks', 'parameterized tests via params=[...]', 'doubles / stubs / spies', the CLI runner with actual flags, 'JUnit XML export, and CI integration'. Not score 4 because there are no meaningful coverage gaps — every major capability of the skill is named concretely.

5 / 5

Completeness

Both questions are explicitly answered: the 'what' is an extensive concrete capability list ('Author and run GUT... Covers install... JUnit XML export, and CI integration') and the 'when' is an explicit trigger clause ('Use when the unit under test is GDScript code in a Godot project') plus version-matching guidance. Clearly matches the anchor requiring both with concrete trigger phrases; not 4 because the 'when' clause is fully explicit, not merely present.

5 / 5

Trigger Term Quality

Good keyword coverage: 'GUT', 'Godot Unit Test', 'GDScript', 'Godot', 'unit test', 'before_each', 'stubs / spies', 'JUnit XML', 'CI' are terms a user needing this skill would naturally say. Not 5 because a few natural synonyms are missing — e.g., 'mock' (users commonly say mocking rather than GUT's 'doubles'), '.gd' file extension, and generic phrasings like 'test my Godot code'.

4 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers: the framework name, repo URL, and engine ('GUT (Godot Unit Test)', 'github.com/bitwes/Gut', 'GDScript code in a Godot project') make confusion with any other testing skill unlikely. Not 4 because even closely related skills (e.g., .NET testing in Godot) are explicitly excluded by the GDScript scoping and version coupling.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

Table of Contents