Skip to content

Latest commit

 

History

History
39 lines (27 loc) · 802 Bytes

README.md

File metadata and controls

39 lines (27 loc) · 802 Bytes

rust-test-frameworks

A home for experiments with custom test frameworks in rust

All examples require a build from the custom-test-frameworks branch from: https://github.com/djrenren/rust

High Level Architecture

The goal is to allow user-defined crates to fulfill tests.

Today we mark tests like so:

#[test]
fn foo() {
  //...
}

These tests are aggreggated and run by rust's internal libtest framework. If we want custom reporting or different execution behavior we're stuck. Now we can write something like so:

#![test_runner(crate::my_runner)]

fn my_runner(ts: &[&Fn(i32) -> bool]) {
  //...
}

#[test_case]
fn foo(a: i32) -> bool {

}

test_case performs basic aggregation and the test_runner crate attribute specifies what function will receive the tests.