MANIFESTOabout / testmlv0.4

We write tests once. We run them in every language.

TestML is a spec, not a vendor. One YAML-style file holds the cases. Five runtimes read it the same way. No more re-writing the same login test in Python and Java and Ruby.

LicenseMIT — fully open
Runtimes5+ languages
GovernancePublic RFCs
CostFree, no tiers

Five clauses that shape every release.

The spec is short. The runtimes are small. These rules keep us honest when scope creeps. Read them as a contract.

§ 01

Tests belong to the spec, not the language.

A login flow is a login flow. Python should not own it. Java should not own it. We write the spec once. Every runtime reads the same file.

§ 02

Polyglot is the default now.

Real teams ship in five languages. They re-implement the same assertions five times. That is wasted work. TestML refuses to accept it.

§ 03

YAML is a feature, not a fashion.

Plain text wins. It diffs in Git. It reads in pull requests. It loads in any language without a parser fight.

§ 04

Open source is the only fair contract.

MIT license. No vendor seats. No locked tiers. The spec is the product. The runtimes are community-owned.

§ 05

Green tests are the only proof.

We measure success in pass dots, not stars. A framework that fails CI is not a framework. It is a liability.

Four pillars hold up the project.

Every choice maps back to one of these. If a feature breaks a pillar, we cut the feature.

principle.01

One file. Many runtimes.

Author a test once. Run it under Python, JavaScript, Ruby, Perl, or Java. Same assertions. Same fixtures. Same pass criteria.

principle.02

Data-driven by design.

Cases live next to the spec. No glue code. Add a row to add a case. Drop a row to drop one. That is the whole loop.

principle.03

Standards over plugins.

TestML is a spec first. Runtimes follow it. That means no plugin lock-in and no breaking moves between releases.

principle.04

Built in the open.

Roadmap on GitHub. RFCs in public. Community governance with no paywall behind the docs.

What TestML is. What it refuses to be.

Most testing tools list features. We list constraints. A clear no makes a clear yes possible.

YESwhat we build
  • Yes — one syntax across every supported runtime
  • Yes — MIT-licensed source available on GitHub
  • Yes — portable across Linux, macOS, and Windows
  • Yes — data-driven cases in plain text
  • Yes — community RFCs steer the spec
what we skipNO
  • Not a language-specific testing library
  • Not gated behind paid tiers or seats
  • Not locked to a single development ecosystem
  • Not a closed-source proprietary harness
  • Not a tool that rewards test duplication

Same spec. Five stable runtimes.

Pick the language your service uses. Install the runtime. Point it at the same .tml file. The pass dot goes green.

Python
$ pip install testmlstable
JavaScript
$ npm i testmlstable
Ruby
$ gem install testmlstable
Perl
$ cpan TestMLstable
Java
$ maven: org.testmlstable

Ready to write tests once?

Pick a language. Install in one line. Drop in a .tml file. The first green pass dot takes about three minutes.