#framework #catch #test-cases #test-framework #automated #section

nightly macro ratcc

Rust Automated Test Cases in a Crate. A testing framework inspired by the Catch C++ framework. Requires nightly rust.

4 releases

Uses old Rust 2015

0.1.3 Jan 16, 2018
0.1.2 Jan 16, 2018
0.1.1 Jan 16, 2018
0.1.0 Jan 16, 2018

#14 in #catch

Apache-2.0/MIT

8KB
75 lines

Ratcc

Rust Automated Test Cases in a Crate

Crates.io

A test frameworked for Rust, inspired by the Catch C++ test framework.

Usage

[dev-dependencies]
ratcc = "0.1"
#![feature(proc_macro)]
extern crate ratcc;
use ratcc::*;

#[catch_test]
fn example() {

    let a = 0;
    assert_eq!(a, 0);

    #[section("first succeeds")] {
        let b = 0;
        assert_eq!(a, b);

        #[section("second fails")] { assert!(false); }
    }

    #[section("first fails")] {
        let b = 1;
        assert_eq!(a, b);

        #[section("second succeeds")] {
            // The parent section fails assert so this never
            // gets executed.
            //
            // Should result in undefined result but doesn't.
            assert!(true);
        }
    }
}

// OUTPUT:
//
//   Running target/debug/deps/test-d4d1fd68ce8fee8b
//
//   running 5 tests
//   test example ... ok
//   test example_first_fails ... FAILED
//   test example_first_fails_second_succeeds ... FAILED
//   test example_first_succeeds ... ok
//   test example_first_succeeds_second_fails ... FAILED

Dependencies

~2MB
~48K SLoC