Home
Softono
poku

poku

Open source MIT TypeScript
1.2K
Stars
28
Forks
3
Issues
4
Watchers
1 week
Last Commit

About poku

🐷 Poku makes testing easy for Node.js, Bun, Deno, and you at the same time.

Platforms

Web Self-hosted

Languages

TypeScript
Poku's Logo

Poku

Enjoying Poku? Give him a star to show your support 🌟

[Version]() [Downloads]() [CI]() [Coverage]()


🐷 Website  β€’  πŸ“˜ Documentation  β€’  πŸ§ͺ Examples  β€’  πŸ§‘πŸ»β€πŸŽ“ Tutorials


Why does Poku exist?

πŸ’‘ Poku is a cross-platform test runner that brings the JavaScript essence back to testing.

v High isolation level per file
v Performant and lightweight
v Support for ESM, CJS, and TypeScript
v Plugin ecosystem for custom and official plugins
v Run the same test suite for Node.js, Bun, and Deno
v Easily handle servers, processes, ports, and containers ✨


Quickstart

v 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

v Test

import { assert } from 'poku';

assert(true, 'Poku will describe it 🐷');

v Run

Node.js (and TypeScript)

npx poku

Bun

bun --bun poku

Deno

deno run npm:poku

Features

v Essentials

poku πŸ§ͺ Test runner
assert β€’ strict πŸ”¬ Test assertion (Node.js familiar API)

v 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

  • ~5.3x faster than Jest (v30.4.2)
  • ~4.5x faster than Vitest (v4.1.6)
  • You can see how the tests are run and compared in the benchmark directory.

Installation Size

Install 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.

[Contributors]()

Sponsors

Really thanks to everyone who has supported and keeps supporting my work.

Sponsors


License

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