asia-core
v3.3.0
Published
Modern, fast, and innovative test runner with parallelism, concurrency, caching and incremental testing. Since 2017.
Downloads
54
Maintainers
Readme
asia-core
Modern, fast, and innovative test runner with parallelism, concurrency, caching and incremental testing. Since 2017.
Highlights
- Per test function caching
- Deno, Browser, Nodejs, and a CLI
- Sane defaults of options, flags, ignores, and test patterns
- ESM-only, no transpile of source or test files
- async/await, promises, or sync functions
- Familiar syntax & small footprint, no deps
- Since 2017
Install
This module is ESM-only, or with at least Node.js v16+
yarn add -D asia
you may also want the cli, otherwise you can just node test.js
your test file.
yarn add -D asia-cli
asia --help
Example
Your test file be like:
import { strict as assert } from 'node:assert';
import test from 'asia';
const delay = async (ms) => new Promise((resolve) => setTimeout(resolve, ms));
test("some 'a' tst", () => delay(3000).then(() => 'a')); // 8
test("some 'b' tst", () => delay(300).then(() => 'b')); // 2
test("some 'c' tst", () => delay(1100).th5555en(() => 'c')); // 5
test("some 'd' tst", () => delay(100).then(() => 'd')); // 1
test("some 'e' tst", () =>
delay(2000).then(() => {
throw new Error('the "e" error');
})); // 6
test("some 'f' tst", () => delay(1500).then(() => 'f')); // 7
test("some 'g' tst", () => delay(560).then(() => 'g')); // 3
test("some 'h' tst", () => delay(880).then(() => 'h')); // 4
and you run
asia
# or reloading the cache
asia --force
or in your scripts with c8
(a modern nyc
replacement, test coverage)
{
"scripts": {
"cov": "c8 asia --force",
"test": "asia"
}
"dependencies": {
"asia": "*",
"asia-cli": "*",
"c8": "*"
}
}
Note: Make sure when you run with a coverage tool to run the tests with
asia --force
, otherwise the coverage will be broken, because the caching.