
ExUnit
ExUnit is a free unit-testing framework for the Elixir programming language.
What ExUnit is
ExUnit is a free unit-testing framework for the Elixir programming language. A basic setup starts it with ExUnit.start() and defines test cases in a module using ExUnit.Case. In an Elixir project, Mix's mix test command runs files matching *_test.exs in the test directory. ExUnit.Assertions supplies assertion macros that generate error messages for failed checks. Tests in separate modules can run concurrently, while tests within one module run serially. ExUnit.async_run/0 starts tests asynchronously while cases load, and await_run/1 waits for the result. Result formatters report outcomes and timing for the slowest tests or modules. Options include timeouts, parallel-case limits, failure limits, filters, captured logging, colors, and random seeds. Finished tests may pass, fail, be skipped, be excluded, or be invalid when setup_all fails. ExUnit can start tests and run them automatically before the VM terminates. The source code is released under the Apache License 2.0. Its listed plan is free, with no trial.
Good
- Free Elixir testing framework
- Mix integration for *_test.exs files
- Concurrent modules with serial module tests
- Configurable timeouts and parallel limits
- Assertion macros with error messages
Watch out
- Supports Elixir only
- Linux platform listed
- No free trial because it is free
- Tests within a module run serially
Who it suits
ExUnit suits Elixir developers writing automated unit tests, from solo developers to organizations using Elixir applications. It is for projects needing assertions, reporting, filtering, and parallel test execution.
Verdict
ExUnit provides Elixir-native test setup, assertions, execution controls, and reporting at no cost. Its concurrency model and configuration options suit structured Elixir test suites.
Plans and prices
From ExUnit's own pricing page, checked 8 Oct 2001.
| Plan | Price | What it gives you |
|---|---|---|
| ExUnit | Free | Unit testing framework for Elixir |
The facts
Each one read from ExUnit's own pages, with the date it was checked.
What it does
- Assertions
- ExUnit.Assertions provides macros that generate assertions with appropriate error messages.checked 8 Oct 2001
- Async execution
- ExUnit.async_run/0 starts tests asynchronously while test cases are loading, and await_run/1 waits for the result.checked 8 Oct 2001
- Concurrency
- Tests in different modules can run concurrently, while tests within each module run serially.checked 8 Oct 2001
- Configuration
- ExUnit options include test timeouts, maximum parallel cases, failure limits, filters, logging capture, colors, and random seeds.checked 8 Oct 2001
- Intended users
- The Elixir website describes Elixir as serving solo developers and Fortune 500 companies across varied industries and applications.checked 8 Oct 2001
- License
- The Elixir source code is released under the Apache License 2.0.checked 8 Oct 2001
- Mix integration
- The Mix command mix test runs files matching *_test.exs in a project's test directory.checked 8 Oct 2001
- Parallel tests
- Tests in different test modules can run concurrently, while tests within a module run serially.checked 8 Oct 2001
- Purpose
- ExUnit is a unit testing framework for Elixir.checked 8 Oct 2001
- Reporting
- ExUnit supports result formatters and can report timing for the slowest tests or test modules.checked 8 Oct 2001
- Run tests
- Mix's mix test command runs files matching *_test.exs in a project's test directory.checked 8 Oct 2001
- Security reporting
- The Elixir repository asks users to disclose security vulnerabilities privately through its Security page.checked 8 Oct 2001
- Support channels
- The Elixir website lists community support channels including Slack, the Elixir Forum, and Discord.checked 8 Oct 2001
- Supported runtime
- ExUnit is part of the Elixir programming language and the example invokes it using the elixir command line.checked 8 Oct 2001
- Test assertions
- ExUnit.Assertions provides macros that generate assertions with appropriate error messages.checked 8 Oct 2001
- Test execution
- ExUnit starts tests and can run them automatically before the VM terminates.checked 8 Oct 2001
- Test outcomes
- Finished tests can pass, fail, be skipped, be excluded, or be invalid when setup_all fails.checked 8 Oct 2001
- Test setup
- A basic ExUnit setup starts the framework with ExUnit.start() and defines tests in a module using ExUnit.Case.checked 8 Oct 2001
- What it does
- ExUnit is a unit testing framework for Elixir.checked 8 Oct 2001
The company
- Founded
- 2012checked 28 Sep 2001




