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.
- 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
- JavaScript Node 18+
- Ruby >= 3.0
- Perl >= 5.30
- Java JDK 17+
- Bash >= 5.0
04 · WHERE TO GO NEXT
Pick the path that fits your week.
Some teams want the full spec. Others want example suites to copy. All four routes below are short reads. None of them ask for an email or a signup.
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.