TESTML / V0.4 · QUICKSTART

Write a test once. Run it across every stack you ship.

This is the short path from zero to a green run. Install the runner, write one .tml file, and watch it pass in Python, Ruby and JavaScript. No new language. No paid tier.

Time
~5 min
Spec
0.4.0
License
MIT

01 · BEFORE YOU START

A short checklist. No surprises.

TestML is small and self-contained. You do not need an agent, a server, or a paid plan. Make sure these four things are in place and you are ready to go.

  • Disk

    About 12 MB for the runner and bindings.

  • Editor

    Any editor with YAML syntax help works well.

  • CI

    Plain shell exit codes, no special agent needed.

  • License

    MIT. Use it in private or public work.

02 · FOUR STEPS

From an empty folder to a green pass.

Each step takes about a minute. Copy the snippet, adapt the names, and move on. The whole loop is under five minutes for most teams.

  1. STEP 01

    Install the runner

    Pick the host language your team uses today. The runner reads the same .tml file no matter where it lives.

    $ pip install testml
    # or: npm i -D testml
    # or: gem install testml
  2. STEP 02

    Write your first test

    Drop a tests/login.tml file beside your code. The format is YAML-shaped and reads like plain English.

    %TestML 0.4.0
    Add two numbers => sum:
      - [1, 2, 3]
      - [4, 5, 9]
      - [-1, 1, 0]
  3. STEP 03

    Bind the test to code

    Map each row to a function in your project. Bindings live in a small bridge file you keep next to the suite.

    // bridge.js
    runner.bind('sum', (a, b) => a + b);
  4. STEP 04

    Run it everywhere

    The same .tml file runs across stacks. Use one CI job per language and share fixtures across the team.

    $ testml tests/
      PASS  tests/login.tml  3 of 3
      PASS  tests/sum.tml    3 of 3

03 · SUPPORTED RUNTIMES

One file. Six bindings. Zero rewrites.

The same .tml suite runs in every host below. Add a binding file per language. Share fixtures across the team. Drop a stack from CI without losing test coverage.

  • Python >= 3.9
  • JavaScript Node 18+
  • Ruby >= 3.0
  • Perl >= 5.30
  • Java JDK 17+
  • Bash >= 5.0

05 · COMMON QUESTIONS

Quick answers before you commit a test file.

  • Q.01

    Do I need to learn a new language?

    No. TestML files are YAML-shaped. If you can read a config file, you can read a test.

  • Q.02

    Will it slow down CI?

    The runner is light. A 200-case suite finishes in under a second on a typical laptop.

  • Q.03

    Can I mix it with my existing tests?

    Yes. Keep your unit tests where they are. Use TestML for cases that span more than one stack.

  • Q.04

    What about secrets and fixtures?

    Fixtures sit in plain files near each suite. Secrets stay in your CI vault, not in .tml files.

READY?

Your first cross-language pass is five minutes away.

Open the docs, copy a snippet, run the file. If something feels off, the community channel is small and friendly. Maintainers reply in the same week.