CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

pytest-testing-skill

Set up pytest 8.x with Python for unit and integration testing using fixtures (scope, autouse, parametrize), async tests (pytest-asyncio), mocking (unittest.mock, pytest-mock), coverage (pytest-cov), conftest.py patterns, and markers.

Quality

73%

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

Fix and improve this skill with Tessl

tessl review fix ./testing/pytest-testing-skill/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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 highly actionable, executable reference with excellent code examples covering configuration, fixtures, mocking, async testing, and CI integration. Its weaknesses are verbosity from duplication and inline secondary material, and the lack of an explicit ordered workflow with validation checkpoints.

Suggestions

Remove the blockquote that repeats the frontmatter description verbatim, and consolidate the two near-duplicate async engine/session fixture examples into one canonical pattern.

Move secondary patterns (Factory Boy integration, responses-library HTTP mocking, docker-compose test DB setup) into reference files (e.g., references/mocking.md, references/test-db.md) linked from a short SKILL.md overview.

Add an explicit post-scaffold validation step, e.g. "Verify: run pytest --version and a trivial smoke test; only proceed when both pass", to give the setup workflow a checkpoint.

DimensionReasoningScore

Conciseness

The body is mostly lean code with little prose padding, but it includes clear slack: the frontmatter description is repeated verbatim as a blockquote, the async SQLAlchemy session/engine pattern appears twice ("Fixture Scopes and Yield" and "tests/integration/conftest.py") with near-duplicate code, and at ~425 lines the whole could be tightened. This matches 'mostly efficient but includes some unnecessary content or could be tightened' rather than score 4, where only minor trimming would be needed.

3 / 5

Actionability

Nearly everything is copy-paste ready: install commands, a complete pyproject.toml pytest config, root and integration conftest.py fixtures, unit/async/parametrize/mocker test examples, factory definitions, a docker-compose.test.yml, and an extensive command cheatsheet. The few undefined names (expensive_computation(), fetch_users(), ExternalServiceError) are placeholders for the user's own code, which is standard. This matches 'fully executable; copy-paste ready; specific examples cover the common cases'.

5 / 5

Workflow Clarity

There is an implicit sequence (Prerequisites → Scaffold Command → Project Structure → Key Conventions → Essential Patterns → Common Commands → Integration Notes), but no explicit ordering, no numbered steps, and no validation checkpoints — e.g., nothing says 'verify the setup with pytest --version or a smoke test run after scaffolding'. The sequence is present but checkpoints are missing or only implicit (running pytest itself), matching anchor 3; it is not 2 because the sections do form a coherent progression, and not 4 because verification steps are absent rather than merely having minor gaps.

3 / 5

Progressive Disclosure

Section headers are clear and content is logically grouped, but everything is inlined in a single ~425-line SKILL.md with no bundle files (references/, scripts/, assets/ do not exist) and no references to any. Secondary material that clearly belongs in reference files — Factory Boy integration, the responses mocking library, docker-compose test DB setup — sits inline. This matches 'some structure but content that should be separate is inline'; it is not 2 because the structure within the file is good, and not 4 because there is no split or navigation to separate files at all.

3 / 5

Total

14

/

20

Passed

Description

71%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 specific, capability-rich description that names the domain, concrete actions, and exact libraries, with good natural keyword coverage. Its main weakness is the complete absence of a 'Use when...' trigger clause, which caps completeness at 3 and weakens its function as a trigger surface.

Suggestions

Append an explicit trigger clause, e.g. "Use when writing or running tests with pytest, or when the user mentions unit tests, integration tests, test fixtures, mocking, or test coverage in a Python project."

Add natural user phrasings and synonyms beyond library names, such as "write tests", "Python testing", and "test coverage".

Consider dropping the pinned version "8.x" from the description (it lives better in the body) to keep the trigger text timeless.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete capabilities with specific library names: "Set up pytest 8.x with Python for unit and integration testing using fixtures (scope, autouse, parametrize), async tests (pytest-asyncio), mocking (unittest.mock, pytest-mock), coverage (pytest-cov), conftest.py patterns, and markers" — this comprehensively covers pytest's core feature areas with parenthetical detail, matching the anchor for multiple specific concrete actions with comprehensive coverage. It is not score 4 because the coverage goes beyond 'minor gaps' — fixtures, async, mocking, coverage, conftest, and markers are all named explicitly.

5 / 5

Completeness

The 'what' is clear and concrete (setting up pytest with fixtures, async tests, mocking, coverage, conftest patterns, markers), but there is no 'Use when...' clause or any equivalent explicit trigger guidance — per the judging guideline, a missing 'Use when...' clause caps completeness at 3. It is not score 2 because the 'what' is specific rather than vague; it cannot be 4 because the 'when' is entirely absent rather than present-but-imprecise.

3 / 5

Trigger Term Quality

Natural user terms are present: "pytest", "unit and integration testing", "fixtures", "mocking", "coverage", "conftest.py", "Python" — good keyword coverage. It falls short of anchor 5 because common natural phrasings users would say are missing, such as "write tests", "test my code", or "Python testing"; the terms present are mostly library/feature names rather than the full range of synonyms.

4 / 5

Distinctiveness Conflict Risk

The description explicitly names "pytest 8.x" and "Python for unit and integration testing", carving out a clear niche that is mostly distinct from e.g. a generic unittest or tox skill. It is not 5 because a user saying 'test my Python code' without naming pytest could plausibly want a broader Python-testing skill, so minor overlap risk with closely related skills remains.

4 / 5

Total

16

/

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

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

achreftlili/deep-dev-skills

Path

testing/pytest-testing-skill/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.