Why does Poku exist?
π‘ Poku is a cross-platform test runner that brings the JavaScript essence back to testing.
High isolation level per file
Performant and lightweight
Auto detect ESM, CJS, and TypeScript files
Run the same test suite for Node.js, Bun, and Deno
Easily handle servers, processes, ports, and even containers β¨
Quickstart
Install
npm i -D poku
|
npm i -D poku tsx
|
bun add -d poku
|
deno add npm:poku
|
Test
test/file.test.mjs
|
import { assert } from 'poku';
assert(true, 'Poku will describe it π·');
|
Run
Node.js (and TypeScript) | Bun | Deno |
npx poku
|
bun poku
|
deno run npm:poku
|
Features
Essentials
| poku | π§ͺ Test runner. |
| assert | π Test assertion (Node.js familiar API). |
| strict | π¬ Strict test assertion (Node.js familiar API). |
Helpers
| test β’ describe β’ it | π€Ήπ»ββοΈ Organize, group, and isolate tests. |
| envFile | βοΈ Process an environment file (out-of-box). |
| beforeEach β’ afterEach | π Hooks for test setup and teardown. |
| startScript | π Run package.json scripts in background. |
| startService | π Run files in background. |
| docker | π³ Build, start, compose, stop, remove, and test containers. |
| kill | π Terminate ports, port ranges, and PIDs. |
| waitForPort | π΄ Wait for specified ports to become active. |
| waitForExpectedResult | π₯± Retry until an expected result or times out. |
| skip | βοΈ Skip tests when necessary. |
| only | π Debug tests by enabling selective runs. |
| getPIDs | π΅π» Debug processes IDs using ports and port ranges. |
Common Options
| watch | πΏ Watch for changes and re-run related test files. |
| debug | π΅π» Shows all logs. |
| config | βοΈ Customize your Poku options in a config file. |
| coverage | βοΈ Enable coverage collection using a coverage plugin. |
and much more ππ»
Documentation and Examples
To see the detailed documentation, please visit the Documentation and Examples sections in the Poku's website.
Tutorials
Poku offers mini-lessons for different users needs in the Quick Tutorials section.
Common Issues (FAQ)
Quick Comparisons
Performance
Poku is continuously tested to ensure the following average expectations for basic usage:
- ~4.6x faster than Jest (v30.3.0)
- ~3.5x faster than Vitest (v4.1.2)
Installation Size

Poku size ensures cost-saving CI for services that charge for storage and usage.
Security Policy

Please check the SECURITY.md.
Contributing
See the Contributing Guide and please follow our Code of Conduct π
Acknowledgements
Contributors
My thanks to everyone who has dedicated their time and effort to improving Poku.

Really thanks to everyone who has supported and keeps supporting my work.
Also for the private ones, who don't appear here π΅

License
Poku is under the MIT License.
Copyright Β© 2024-present Weslley AraΓΊjo and Poku contributors.