renumber

Crates.iorenumber
lib.rsrenumber
version0.1.2
created_at2025-02-13 20:45:51.177147+00
updated_at2025-06-07 09:32:16.601992+00
descriptionRenumber tests or benchmarks
homepage
repositoryhttps://github.com/EngosSoftware/renumber.git
max_upload_size
id1554771
size28,069
core (github:engossoftware:core)

documentation

https://docs.rs/renumber

README

Renumber Rust tests or benchmarks

Crates.io Code coverage build Linux build Nusl build Windows build MacOs build MacOs arm64 MIT licensed Apache 2.0 licensed Contributor Covenant Made by Human

Overview

renumber is a simple command-line utility that renumbers Rust tests and benchmarks.

It is particularly useful when a single test or benchmark file contains multiple functions that don't require meaningful names, such as in test-driven development (TDD). renumber renames these functions sequentially as _0001, _0002, _0003, and so on.

Example

Input file

$ cat ./tests/test_doc.rs

Output:

#[test]
fn _one_should_be_equal_to_one() {
  assert_eq!(1, 1);
}

#[test]
fn _one_should_not_be_equal_to_two() {
  assert_ne!(1, 2);
}

#[test]
fn _first_name_should_be_shorter_than_the_second() {
  let first_name = "John";
  let second_name = "Alexander";
  assert!(first_name.cmp(&second_name).is_gt());
}

NOTE: Test names begin with underscore, otherwise renumber will skip it.

Renumbering

$ renumber ./tests/test_doc.rs

Input file after renumbering

#[test]
fn _0001() {
  assert_eq!(1, 1);
}

#[test]
fn _0002() {
  assert_ne!(1, 2);
}

#[test]
fn _0003() {
  let first_name = "John";
  let second_name = "Alexander";
  assert!(first_name.cmp(&second_name).is_gt());
}

Hints & Tips

  • renumber takes a single command-line argument, the input file to be renumbered.
  • If renumbering is successful, the input file is OVERWRITTEN with the new, renumbered content.
  • Only functions annotated with #[test] or #[bench] and whose names begin with an underscore (_) are renamed.
  • Numbering starts from 1 (vote for #1 👍 to change it).
  • The new name follows this pattern: format!("_{:04}", index) (vote for #2 👍 to change it).

License

Licensed under either of

Contribution

Any contributions to renumber are greatly appreciated. All contributions intentionally submitted for inclusion in the work by you, shall be dual licensed as above, without any additional terms or conditions.


Brought to you with 💙 by Engos Software

Commit count: 0

cargo fmt