Skip to content

A lighweight and parallel snapshot testing framework in rust

License

Notifications You must be signed in to change notification settings

rachitnigam/runt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RUN Tests (RUNT)   latest latest-docs

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. 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-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.

About

A lighweight and parallel snapshot testing framework in rust

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages