8000 GitHub - mhweiner/kizu at v3.6.7
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ kizu Public

An easy-to-use, fast, and defensive Typescript/Javascript test runner designed to help you to write simple, readable, and maintainable tests.

License

Notifications You must be signed in to change notification settings

mhweiner/kizu

Repository files navigation

Logo

build status SemVer Conventional Commits AutoRel

kizu is a fast, minimalist test runner for TypeScript and JavaScript, with a small, easy-to-learn API that lets you focus on your tests — not your tooling.

Designed to help you write simple, readable, and maintainable tests.

Features

🚀 Fast & Reliable

  • Multi-process parallel test runner. Each test file is run in its own process/runtime for performance and isolation benefits. Use on a multicore machine for best results.
  • Optimized for speed and simplicity.
  • Minimal dependencies.

😀 Easy to Use

  • Very simple functional assertion API. No need to learn a DSL or framework.
  • Built-in powerful diff visualization tool
  • Clean, organized output.
  • Failed tests are easy to find, grouped at the end of the output.
  • Errors or unhandled promise rejections are buffered and grouped under the test file in the output. This helps you know where they came from.
  • Clean stack traces with no extra noise.

🛡 Defensive

  • Uncaught errors and unhandled promise rejections will cause the test to fail.
  • Any spec files without tests, or tests without assertions, result in a failed test.
  • Strict and deep equality comparison by default.

🔒 Out-of-the-box Typescript support

  • No special configuration needed, and no plugins to install.
  • Works great with c8 for code coverage.
  • Handles compilation errors gracefully.

Quick Examples

For more examples, see the examples and src folders.

import {test} from 'kizu';

// Basic test

function greet(name: string): string {
  return `hello, ${name}`;
}

test('greet()', (assert) => {
  assert.equal(hello('world'), 'hello, world');
});

// Error handling

function throwError(): never {
  throw new Error('oops');
}

test('throwError()', (assert) => {
  assert.throws(() => throwError(), /oops/);
});

// Async test

async function fetchData(): Promise<string> {
  return Promise.resolve('data');
}

test('fetchData()', async (assert) => {
  const data = await fetchData();
  assert.equal(data, 'data');
});

Table of Contents

Getting Started

To install and get started with kizu, see our Getting Started guide. See the examples and src folders for more examples.

Support, feedback, and contributions

  • Star this repo if you like it!
  • Submit an issue with your problem, feature request or bug report
  • Issue a PR against main and request review. Make sure all tests pass and coverage is good.
  • Write about this project in your blog, tweet about it, or share it with your friends!

Sponsorship


Logo

Aeroview is a lightning-fast, developer-friendly, AI-powered logging IDE. Get started for free at https://aeroview.io.

Want to sponsor this project? Reach out.

Related projects

  • cjs-mock: NodeJS module mocking for CJS (CommonJS) modules for unit testing purposes.
  • autorel: Automate semantic releases based on conventional commits. Similar to semantic-release but much simpler.
  • brek: A powerful yet simple configuration library for Node.js. It’s structured, typed, and designed for dynamic configuration loading, making it perfect for securely managing secrets (e.g., AWS Secrets Manager).
  • jsout: A Syslog-compatible, small, and simple logger for Typescript/Javascript projects.

About

An easy-to-use, fast, and defensive Typescript/Javascript test runner designed to help you to write simple, readable, and maintainable tests.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0