Skip to content

Repository files navigation

Aeocha

Aeocha is a BDD-style test framework for Aether: nested suites, hooks, soft assertions, fluent expectations, timing helpers, and process and HTTP matchers.

import aeocha
import calc

main() {
    fw = aeocha.init()

    aeocha.describe(fw, "calculator") {
        aeocha.it("adds two numbers") callback {
            aeocha.expect_int(calc.add(2, 3)).to_equal(5)
        }
    }

    aeocha.run_summary(fw)
}

The suite DSL follows Java's Cuppa, which was itself inspired by Mocha. The fluent assertion API resembles AssertJ, Hamcrest, and Chai; the one-shot within / without modifiers come from FluentSelenium.

Documentation

The documents above are the user documentation. aeocha.ae remains the authoritative implementation; LLM.md and TODO.md are maintainer notes rather than user guides.

Requirements

  • Aether ae v0.494.0 or newer
  • libpcre2-8 only when using expect_stdout_matches_regex

Install

An Aether module search directory must contain aeocha.ae. Clone or vendor the repository, then point AETHER_LIB_DIR at it:

git clone https://github.com/aether-lang-org/aeocha.git /path/to/aeocha
export AETHER_LIB_DIR=/path/to/aeocha

AETHER_LIB_DIR is a PATH-style list. You can alternatively pass the directory with ae --lib. Continue with the Getting started guide.

Developing Aeocha

Prefer an installed Aether release. If no suitable ae is on PATH, bootstrap_aether.sh installs a private, versioned toolchain under .aether/. It tries a prebuilt release first, compile-probes it, and falls back to building the same release from source. The script prints the PATH command needed to use it.

After editing aeocha.ae, clear Aether's stale import cache before testing:

rm -rf ~/.aether/cache
ae run example_self_test.ae

Integration checks are executable shell scripts under tests/integration/.

License

MIT. See LICENSE.

About

Mocha inspired testing framework for Aether

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages