#testing #snapshot-testing

bin+lib runt

A lightweight and parallel snapshot testing framework

16 releases

0.3.2 Aug 1, 2021
0.3.1 Jul 30, 2021
0.2.8 Dec 7, 2020
0.2.7 Jul 24, 2020
0.1.4 Mar 30, 2020

#80 in Testing

46 downloads per month

Custom license

1.5MB
796 lines

RUN Test (RUNT)   latest [latest-docs]

Runt is a lightweight, concurrent, and parallel snapshot testing framework that requires minimal configuration. Checkout the documentation for explaination 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. The runt executable is generated under target/release/runt.
  • Runt is tested using runt. Run runt cli-test to test runt.

Example

View the example configuration for the tests in cli-tests. To run the tests, run runt cli-tests

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.

Dependencies

~7MB
~142K SLoC