runs

Crates.ioruns
lib.rsruns
version0.2.1
created_at2025-06-30 20:46:36.667199+00
updated_at2025-07-23 15:06:37.248345+00
descriptionA CLI tool to run Rust documentation tests (doctests) on standalone .rs files by generating a temporary Cargo project.
homepage
repositoryhttps://github.com/2teez/runs
max_upload_size
id1732355
size14,986
timothy adigun (2teez)

documentation

https://github.com/2teez/runs

README

๐Ÿ“š runs โ€“ Run Rust Doctests on Standalone Files

runs lets you execute Rust documentation tests (doctests) on a standalone .rs file, even if it's not part of a full Cargo project.

Normally, cargo test --doc works only inside valid Cargo projects. runs bridges this limitation.


โœจ Features

  • โœ… Accepts a standalone .rs file with doctests
  • ๐Ÿ› ๏ธ Automatically creates a temporary Cargo project
  • ๐Ÿงช Runs cargo test --doc on the file
  • ๐Ÿงผ Cleans up the temp project after running
  • ๐Ÿ’ก Optional usage as a library crate

๐Ÿ”ง Installation

Install from crates.io

cargo install runs

Or from source

git clone https://github.com/2teez/runs.git

cd runs

cargo install --path .

๐Ÿš€ Usage

runs my_script.rs

This will:

  1. Create a temp project: my_script_proj/

  2. Copy my_script.rs into src/lib.rs

  3. Generate Cargo.toml

  4. Run cargo test --doc

  5. Delete the project

  6. Print results to your terminal


๐Ÿ“ Example

Given math.rs:

  /// Add two numbers.
  ///
  /// ```
  /// use math_proj::add;
  /// assert_eq!(add(2, 3), 5);
  /// ```
  pub fn add<T: std::ops::Add<Output = T>>(a: T, b: T) -> T {
      a + b
  }

You can run the doctest:

runs math.rs

Versioning:

The version was increased from 0.1.1 to 0.1.2, because the fn keyword is made public in the src/lib.rs by runs. So, user doesn't have to do that on their own.

Version 0.2.0, allow the crate runs to run cargo add, adding to the user's project Cargo toml file, the specified crates used on the doctest. The user does NOT have to manually do anymore, like they will do in the previous version.

Version 0.2.1, updated the README file.

Commit count: 0

cargo fmt