18 releases
0.4.1 | Jun 13, 2023 |
---|---|
0.4.0 | Apr 19, 2022 |
0.3.2 | Aug 1, 2021 |
0.3.1 | Jul 30, 2021 |
0.2.1 | Mar 30, 2020 |
#195 in Testing
1.5MB
856 lines
RUN Tests (RUNT)
Runt is a lightweight, concurrent, and parallel snapshot testing framework that requires minimal configuration. Checkout the documentation for explanation of various features.
Here is an example of runt
in action:
Install the latest version of runt
using:
cargo install runt
Runt is most useful when you have the following test setup:
- One command that needs to run on many input files.
- Test suites grouped by commands run on the files.
- Test outputs are sent to IO streams (stdout and stderr).
- Test and test suites are unordered.
Runt is not useful when you want to do:
- Rich introspective testing of data structures.
- Test suites with complex setups, dependencies, and teardowns.
Snapshot testing with runt is extremely flexible. For example, the tests
under runt-cli-test
test the outputs of the runt CLI.
Building & Developing
- Install Rust.
- Run
cargo build --release
. Therunt
executable is generated undertarget/release/runt
. - Runt is tested using
runt
. Runrunt cli-test
to test runt.
Example
View the example configuration for the tests in cli-test
.
To run the tests, run runt cli-test
Alternatives
- Turnt is a testing framework that allows for more
complex snapshot comparisons. It's particularly powerful when you have
several intermediate files you'd like to compare.
runt
forgoes the flexibility of turnt for faster execution and built-in output diffing. - insta enables snapshot testing of inline rust programs. Useful when
the testing intrinsic structure of Rust programs.
runt
operators on arbitrary shell commands which enables testing CLI programs. - jest is a JavaScript snapshot testing framework that allow formulation of complex expectation queries.
Runt is used to test several reserach compilers built by the Capra lab: Calyx, Dahlia, and Filament.
Dependencies
~6–16MB
~189K SLoC