Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

eliasku/unit

Open more actions menu

Repository files navigation

unit

Build codecov

🥼 Tiny unit testing library for C language 🥼

Standard License Download Documentation Twitter Try it online

output

Example

Compile executable with -D UNIT_TESTING to enable tests

#define UNIT_MAIN
#include <unit.h>

SUITE( suite name ) {
  DESCRIBE( subcase name ) {
    IT("is test behaviour") {
      WARN("use WARN_* to print failed assumptions");
      CHECK("use CHECK_* to continue execute assertions on fail");
      REQUIRE("use REQUIRE_* to skip next assertions on fail");
    }
  }
}

Command-line options

  • --version, -v: Prints the version of unit library
  • --help, -h: Prints usage help message
  • --list, -l: Prints all available tests
  • --animate, -a: Simulate waits for printing messages, just for making fancy printing animation
  • --ascii: Don't use colors and fancy unicode symbols in the output
  • --short-filenames, -S: Use only basename for displaying file-pos information
  • --quiet, -q: Disables all output
  • -r=xml: Special switch prints XML report in DocTest-friendly format (for CLion test run configuration)

Features and design goals

✓ Main focus and features

  • Written in Pure C: only standard libc is used
  • Simplicity and tiny build-size
  • No dynamic memory allocations: only static memory is used for reporting test running infrastructure.
  • Single-header library: easy to integrate
  • Embedded runner & pretty reporter: build self-executable test
  • Disable test code: allow you to write tests for your private implementation right at the end of impl.c file
  • Cross-platform: should work for Linux / macOS / Windows / WebAssembly

✕ What you won't find here

  • Cross-compiler support: no MSVC support, only clang is tested
  • Multithreading and parallel test running
  • Tricky test matchers design
  • Fixtures, before / after or mocking
  • Crash tests and signal interception
  • Fuzz testing

In any case, if you have a desire, you can support and contribute! Feel free to ask me any feature you need. Thank you for your interest!

Morty Proxy This is a proxified and sanitized view of the page, visit original site.