CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/test-framework-blueprint

Build-an-X workflow that takes an SDET from no test suite to a complete framework design in seven steps - inventory the SUT, choose runner + language, directory layout + fixture architecture, object-model decision, test data + mocking wiring, reporting + CI integration, conventions doc + review gates - producing a written framework blueprint (directory tree, fixture list, chosen patterns, CI matrix) plus an implementation order. This is the whole-framework design workflow - not the Step 2 runner-choice decision on its own, not the Step 4 object-model pattern catalog it defers to, and not the scaffolder that generates the harness skeleton once the blueprint exists. Use when designing a test automation framework from scratch or re-architecting one that grew organically.

79

Quality

99%

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

fixture-mechanics.mdreferences/

Fixture mechanics - Playwright and pytest

Deep mechanics for Step 3 of test-framework-blueprint. The blueprint decisions (which scope, what each fixture provides, whether tests mutate it) live in SKILL.md; this file carries the framework-specific wiring.

Playwright mechanics to standardize in the conventions doc

All per the test-fixtures docs:

  • Custom fixtures via test.extend(); teardown code follows await use(...) in the same function, so setup and teardown live together.
  • Cross-cutting fixtures that every test needs (e.g. a network-stub guard) are declared { auto: true }: they are "set up for each test/worker, even when the test does not list them directly."
  • Fixture modules from separate concerns combine via mergeTests(); this is what makes the fixtures/index.ts single-import convention work.
  • Tunable values (base URL, default user role) become option fixtures ({ option: true }) configured through test.use() per project.

The pytest equivalent

If Step 2 chose Python, the same architecture maps onto pytest fixtures. Per the pytest fixtures how-to, tests request fixtures by declaring them as arguments; available scopes are function (the default), class, module, package, and session, where scope controls destruction (a function-scoped fixture "is destroyed at the end of the test"; a session-scoped one at the end of the test session). The fixtures/index.ts merged-export convention becomes conftest.py (fixtures there are accessible to "tests from multiple test modules in the directory"), teardown code goes after yield, and { auto: true } becomes @pytest.fixture(autouse=True). Playwright's worker scope has no direct pytest twin; session scope plus per-worker IDs (e.g. pytest-xdist worker id) fills the same database-per-worker role.

SKILL.md

tile.json