#testing #code-gen

macro testgen

A proc macro crate to generate a variety of test functions

2 unstable releases

Uses old Rust 2015

0.1.0 Nov 18, 2018
0.0.1 Nov 17, 2018

#704 in #test

MIT/Apache

14KB
269 lines

testgen

Build Status crates.io Released API docs

This library is still very early in development!

Generate simple tests with testgen!

Examples

extern crate testgen;
use testgen::{fail, multi_fail, multi_pass, pass};

#[pass(name="optional", 1 => 2)]
#[multi_fail(1 => 1, 2 => 2, 3 => 3)]
fn add_one(n: i32) -> i32 {
    n + 1
}

// Multiple arguments are passed in like a tuple.
// Though to use an actual tuple use `((a, b))`.
// Single-argument functions can have the parenthesis elided in most cases.
#[multi_pass((1, 2) => 3, (3, 4) => 7)]
#[fail((1, 2) => 10)]
fn add(n: i32, m: i32) -> i32 {
    n + m
}

fn main() {}

Output:

   Compiling testgen v0.0.1 (/mnt/F/Development/Rust/testgen)
    Finished dev [unoptimized + debuginfo] target(s) in 1.05s
     Running target/debug/examples/doc_example-79f4317fab9ffdf5

running 4 tests
test add_multitest_pass ... ok
test optional ... ok
test add_one_multitest_fail ... ok
test add_test_fail ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

License

testgen is licensed under both MIT and Apache 2.0

Dependencies

~2MB
~48K SLoC