CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/qt-test-framework

Authors and runs Qt Test - the first-party C++ unit + GUI test framework that ships with Qt 6 (via the `QtTest` module header). Covers the `QTEST_MAIN` / `QTEST_APPLESS_MAIN` / `QTEST_GUILESS_MAIN` entry-point macros, the `QObject` private-slot test pattern, `QVERIFY` / `QCOMPARE` / `QFETCH` assertions, GUI event simulation (`QTest::mouseClick`, `QTest::keyClick`, `QTest::touchEvent`), `QSignalSpy` for signal introspection, `QBENCHMARK` for performance regression, and the `-o file,junitxml` CI output. Use for in-process testing of Qt widgets, QObject signal/slot chains, and Qt Quick / QML application logic; for out-of-process Qt-app driving, use an OS-native accessibility driver instead.

74

Quality

93%

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

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 well-engineered skill body: a numbered end-to-end workflow from build integration to CI, executable examples at every step, an explicit verification feedback loop for the classic moc/slot-discovery failure, and a genuinely useful anti-patterns and limitations section. Detail is appropriately offloaded to a real, one-level-deep reference file; only slight redundancy (Step 8 vs Step 9) keeps it from full marks on conciseness.

DimensionReasoningScore

Conciseness

The body is dense and actionable with almost no generic-concept padding, but there is minor trimmable redundancy: Step 9 largely repeats Step 8's './test_calculator -o results-junit.xml,junitxml' command, and 'A test can be executed multiple times with different test data. Each newRow runs the test function once.' restates doc-level knowledge. This is the 'efficient; minor instances of over-explanation that could be trimmed' anchor (4) rather than the lean 5 anchor, and clearly above the 3 anchor's 'some unnecessary explanation'.

4 / 5

Actionability

Every stage ships copy-paste-ready material: the CMake qt_add_executable block, a complete QObject test class with lifecycle slots and the moc include, a full data-driven QFETCH/_data() pair, a runnable GUI test with qWaitForWindowExposed/keyClicks/mouseClick/QTRY_VERIFY, a QSignalSpy example, and the -functions/-v2/-o CLI commands, plus an anti-patterns table with concrete fixes. Matches the 'fully executable; copy-paste ready; covers the common cases' anchor, not 4, since no key detail is missing.

5 / 5

Workflow Clarity

Steps 1-10 give a clear author->build->run->parse->CI sequence, with an explicit validation feedback loop in Step 2 ('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') and an anti-patterns table that provides diagnose-and-fix recovery for the known failure modes. Matches the 5 anchor's 'explicit validation steps; feedback loops for error recovery', not the 4 anchor's 'minor validation gaps'.

5 / 5

Progressive Disclosure

The single bundle file, references/qt-gui-signal-benchmark.md, exists at the cited path, is one level deep, and is clearly signaled three times with what it holds (the GUI function-family table in Step 5, the benchmark example slot in Step 7, the full CI workflow in Step 10), and the reference links back to the SKILL. The core flow stays in the body while heavier detail is split out - matching the 5 anchor's 'well-signaled one-level-deep references; content appropriately split', not the 4 anchor's 'minor organization gaps'.

5 / 5

Total

19

/

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 in third-person voice: it names the domain, comprehensively lists concrete capabilities with exact API/macro names, and gives an explicit 'Use for' trigger clause plus a boundary redirect for out-of-process testing. The only weakness is a handful of missing natural trigger phrasings users might type.

DimensionReasoningScore

Specificity

The description enumerates concrete, named capabilities - 'QTEST_MAIN / QTEST_APPLESS_MAIN / QTEST_GUILESS_MAIN entry-point macros', 'QVERIFY / QCOMPARE / QFETCH assertions', 'GUI event simulation (QTest::mouseClick, QTest::keyClick, QTest::touchEvent)', 'QSignalSpy for signal introspection', 'QBENCHMARK for performance regression', and '-o file,junitxml CI output' - giving comprehensive coverage of the framework's surface with no vague padding. This matches the 'lists multiple specific concrete actions; comprehensive coverage' anchor, not the 4 anchor, because there are no material coverage gaps.

5 / 5

Completeness

It explicitly answers both: what - 'Authors and runs Qt Test - the first-party C++ unit + GUI test framework that ships with Qt 6' with a detailed capability list; and when - 'Use for in-process testing of Qt widgets, QObject signal/slot chains, and Qt Quick / QML application logic; for out-of-process Qt-app driving, use an OS-native accessibility driver instead.' The explicit 'Use for' clause with concrete trigger phrases (and a negative boundary) matches the 5 anchor exactly, not 4 where 'when' could be more specific.

5 / 5

Trigger Term Quality

Good natural-keyword coverage: 'Qt Test', 'QtTest', 'C++ unit + GUI test framework', 'Qt 6', 'Qt widgets', 'QObject signal/slot', 'Qt Quick / QML', 'benchmark', 'junitxml'. A few natural user phrasings are still missing (e.g., 'Qt unit testing', 'widget testing', 'tst_', 'ctest', 'headless'), so it sits between the 4 and 5 anchors - noticeably above the midpoint but not comprehensive, hence 4.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche - the first-party Qt 6 in-process test framework - and actively disambiguates by redirecting out-of-process Qt-app driving to 'an OS-native accessibility driver instead', minimizing overlap with generic C++ test skills and GUI-driver skills. Minimal conflict risk, matching the 5 anchor.

5 / 5

Total

19

/

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

Reviewed

Table of Contents