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
Spec0.4.0
LicenseMIT

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.

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
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]
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);
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
JavaScriptNode 18+
Ruby>= 3.0
Perl>= 5.30
JavaJDK 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.