Poku
Enjoying Poku? Give him a star to show your support π
[]()
[
]()
[
]()
[
]()
π· Website β’ π Documentation β’ π§ͺ Examples β’ π§π»βπ Tutorials
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
Support for ESM, CJS, and TypeScript
Plugin ecosystem for custom and official plugins
Run the same test suite for Node.js, Bun, and Deno
Easily handle servers, processes, ports, and containers β¨
Quickstart
Install
π’ Node.js
npm i -D poku
π TypeScript (Node.js)
npm i -D poku tsx
π Bun
bun add -d poku
π¦ Deno (optional)
deno add npm:poku
Test
import { assert } from 'poku';
assert(true, 'Poku will describe it π·');
Run
Node.js (and TypeScript)
npx poku
Bun
bun --bun poku
Deno
deno run npm:poku
Features
Essentials
| poku | π§ͺ Test runner |
| assert β’ strict | π¬ Test assertion (Node.js familiar API) |
Common Helpers and Options
| test β’ describe β’ it | π€Ήπ»ββοΈ Organize, group, and isolate tests |
| envFile | βοΈ Process an environment file |
| beforeEach β’ afterEach | π Hooks for test setup and teardown |
| startScript β’ startService | π Run scripts and files in background |
| docker | π³ Build, start, compose, stop, and remove 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 |
| coverage | βοΈ Enable coverage collection |
| config | βοΈ Customize your Poku |
| watch | πΏ Watch for changes and re-run related test files |
| debug | π΅π» Shows all logs |
- and much more π₯
FAQ
Quick Comparisons
Performance
- You can see how the tests are run and compared in the benchmark directory.
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.
[]()
Sponsors
Really thanks to everyone who has supported and keeps supporting my work.
License
Poku is under the MIT License.
Copyright Β© 2024-present Weslley AraΓΊjo and contributors.