Skip to content

Install bashunit

Actions

About

Install the bashunit testing framework binary at a pinned, immutable version
0.41.0
Latest
Star (419)

Tests Static analysis Editorconfig checker MIT Software License


bashunit

A simple testing framework for bash scripts

Test your bash scripts in the fastest and simplest way.

Why bashunit

A lightweight, fast testing framework for Bash 3.0+, focused on developer experience. It ships hundreds of assertions plus spies, mocks, data providers, snapshots and more.

Quick start

Install the latest version into your project:

curl -s https://bashunit.com/install.sh | bash

Write a test in tests/example_test.sh:

#!/usr/bin/env bash

function test_bashunit_is_working() {
  assert_same "bashunit is working" "bashunit is working"
}

Run it:

./lib/bashunit tests/

Prefer learning by doing? Run ./lib/bashunit learn for an interactive tutorial.

Assertions at a glance

bashunit ships ~60 assertions across many families. One representative example per family (full catalog and signatures at bashunit.com/assertions):

Family Example
Equality & truth assert_equals "foo" "$actual"
Strings assert_string_starts_with "Hello" "$greeting"
Exit codes assert_exit_code "1" (checks $? of the previous command)
Numeric assert_greater_than "1" "$count"
Arrays assert_array_length 3 "${my_array[@]}"
Files & dirs assert_file_permissions 644 "$file"
JSON (needs jq) assert_json_contains ".name" "bashunit" "$json"
Dates assert_date_before "2026-01-01" "$date"
Duration assert_duration_less_than "echo hello" 500
Snapshots assert_match_snapshot "$(my_cmd)"
Test doubles assert_have_been_called_times 2 my_fn

Documentation

Full documentation, covering installation options, every feature and examples, lives at bashunit.com.

Shell tab-completion for bash and zsh is available under completions/ — see the installation docs.

Contribute

Issues, ideas and pull requests are welcome. See the contribution guide to set up your environment.

Install bashunit is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Install the bashunit testing framework binary at a pinned, immutable version
0.41.0
Latest

Install bashunit is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.