cargo-fixeq

Crates.iocargo-fixeq
lib.rscargo-fixeq
version0.5.0
sourcesrc
created_at2020-01-12 02:35:35.445187
updated_at2023-12-20 05:37:40.307485
descriptionFix `assert_eq!` test errors automatically.
homepage
repositoryhttps://github.com/quark-zju/cargo-fixeq
max_upload_size
id197652
size28,167
sig-rust-libs (github:mia-platform:sig-rust-libs)

documentation

README

cargo-fixeq

build

Fix assert_eq! test errors by editing the source code to match the test output.

Inspired by Mercurial's run-tests.py -i.

Installation

cargo install cargo-fixeq

Example

Write tests using assert_eq! as usual. Put the code to evaluate on the left, leave a dummy value on the right:

fn f(n: usize) -> usize {
    if n <= 2 { 1 } else { f(n - 1) + f(n - 2) }
}

#[test]
fn test_f() {
    assert_eq!(f(10), 0);
    assert_eq!(f(20), 0);
}

Run cargo fixeq from the project root:

cargo fixeq

The dummy values are fixed automatically:

 fn test_f() {
-    assert_eq!(f(10), 0);
-    assert_eq!(f(20), 0);
+    assert_eq!(f(10), 55);
+    assert_eq!(f(20), 6765);
 }

In general, cargo-fixeq can be helpful for writing initial tests and updating tests. See here for a more complicated real world example.

Command-line Parameters

All parameters are passed to cargo test. cargo-fixeq does not define its own parameters.

Versions

Similar Projects

Commit count: 31

cargo fmt