CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

qt-test-framework

Use whenever Qt C++ code needs unit or GUI tests in-process: Qt Test entry macros, private-slot test functions, QVERIFY, QCOMPARE and data-driven QFETCH, simulated mouse, key and touch events, QSignalSpy, QBENCHMARK and JUnit XML output for CI, including Qt Quick and QML logic.

Quality

96%

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

The canonical home for this skill is testland/qt-test-framework

SKILL.md
Quality
Evals
Security

Quality

Content

92%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 strong, well-structured skill: a ten-step workflow with executable CMake/C++/CLI examples, an explicit validation feedback loop in Step 2, and clean delegation of the GUI function table, benchmark example, and CI YAML to a single well-signaled reference file. The only weakness is minor token redundancy - Step 9 duplicates Step 8's JUnit-XML command, and the QTRY_VERIFY timeout note is repeated across SKILL.md and the reference. The anti-patterns table and limitations section earn their tokens by capturing real Qt Test gotchas.

Suggestions

Fold Step 9 (Parsing results) into Step 8 (Run): it re-issues the same '-o ...,junitxml' command and adds only the junit-xml-analysis pointer, which already appears in References.

De-duplicate the QTRY_VERIFY/QTRY_COMPARE default-5-second-timeout explanation: it appears almost verbatim in Step 5 and again in references/qt-gui-signal-benchmark.md; keep it in one place (the reference) and link from the other.

Trim editorial comparisons that don't change behavior, e.g. "clunkier than Playwright's await-everywhere model" in Limitations - the constraint (no async-await; use QSignalSpy + QTRY_*) stands without it.

DimensionReasoningScore

Conciseness

The body is mostly efficient - numbered steps, tables, and code with sparse, Qt-specific commentary - but a few tokens don't earn their place: Step 9 ("Parsing results") largely repeats Step 8's "-o results.xml,junitxml" command, the QTRY_VERIFY default-5-second-timeout sentence appears nearly verbatim in both Step 5 and references/qt-gui-signal-benchmark.md, and editorial asides like "clunkier than Playwright's await-everywhere model" could be trimmed. This fits the 4 anchor (efficient with minor trims possible); it is not 5 because not every token earns its place, and not 3 because nothing explains concepts Claude already knows.

4 / 5

Actionability

Guidance is copy-paste ready throughout: complete CMake ("find_package(Qt6 6.5 REQUIRED COMPONENTS Test Widgets)" through "add_test"), a full test class with the moc include, a working _data() slot with QTest::newRow rows, a GUI example using QTest::keyClicks/mouseClick/qWaitForWindowExposed, a QSignalSpy assertion example, and runnable CLI invocations ("./test_calculator -functions", "./test_calculator -o results.xml,junitxml"). The CI YAML in the reference completes the common cases - matching the 5 anchor for fully executable, copy-paste-ready coverage.

5 / 5

Workflow Clarity

Steps 1-10 form a coherent build -> author -> entry-macro -> data-driven -> GUI -> signals -> benchmark -> run -> parse -> CI sequence, and Step 2 embeds a real validation feedback loop: "run ./test_calculator -functions; confirm it lists your private-slot test functions... If none appear, the slots are not under private slots: or the #include "tst_*.moc" line is missing - fix and rebuild." The Anti-patterns table adds error->fix pairs for the common failure modes. This matches the 5 anchor (explicit validation steps with error-recovery loops); there are no checkpoint gaps that would justify a 4.

5 / 5

Progressive Disclosure

The SKILL.md spine stays lean and delegates detail to a single one-level-deep reference, references/qt-gui-signal-benchmark.md (verified to exist), linked with purpose statements in Steps 5 ("the full function-family table is in..."), 7 ("Example slot:..."), and 10 ("Full workflow:..."). The GUI function-family table, benchmark example, and CI workflow are appropriately split out, and the reference file itself links back to SKILL.md. Clear overview, well-signaled references, easy navigation - the 5 anchor.

5 / 5

Total

19

/

20

Passed

Description

100%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.

The description is exemplary: an explicit 'Use whenever...' trigger scoped to Qt C++ in-process testing, followed by a comprehensive, concrete inventory of the framework's capabilities (entry macros, assertions, data-driven tests, event simulation, signal introspection, benchmarking, CI output). It is third-person-adjacent imperative in the style of the rubric's own good examples, with no fluff or over-claims. No changes needed.

DimensionReasoningScore

Specificity

Enumerates the framework's full feature surface with concrete API names: "Qt Test entry macros, private-slot test functions, QVERIFY, QCOMPARE and data-driven QFETCH, simulated mouse, key and touch events, QSignalSpy, QBENCHMARK and JUnit XML output for CI". This is comprehensive coverage with no meaningful gaps, matching the anchor for multiple specific concrete actions rather than the 'minor gaps' of a 4.

5 / 5

Completeness

Explicitly answers both questions: the when is "Use whenever Qt C++ code needs unit or GUI tests in-process" and the what is the enumerated capability list. Both are concrete and explicit with trigger phrases, matching the 5 anchor; the when is specific (in-process, for CI) rather than the looser 'could be more explicit' case of a 4.

5 / 5

Trigger Term Quality

Natural user phrasings are thoroughly covered: "Qt C++ code", "unit or GUI tests", "QSignalSpy", "QVERIFY", "QCOMPARE", "QFETCH", "QBENCHMARK", "JUnit XML", "Qt Quick and QML" - exactly the terms someone writing Qt tests would say, with synonym coverage across unit/GUI/QML vocabulary. No commonly-used natural variation is missing, so it fits the 5 anchor rather than 4.

5 / 5

Distinctiveness Conflict Risk

"Qt C++", "in-process", and Qt-only macros (QFETCH, QSignalSpy, QTEST_MAIN) carve a clear niche that will not fire for generic C++ runners like GoogleTest or for out-of-process UI drivers. Minimal conflict risk fits the 5 anchor; it is a distinct trigger domain, not merely 'mostly distinct' as at 4.

5 / 5

Total

20

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Repository

testland/qa

Path

plugins/qa-desktop/skills/qt-test-framework/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.