laboratory 2.0.0

A simple, expressive unit test framework for Rust
Documentation
# laboratory
A simple, expressive unit test framework for Rust



![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/enokson/laboratory/build/master?style=for-the-badge)
![Crates.io](https://img.shields.io/crates/v/laboratory?style=for-the-badge)
![Crates.io](https://img.shields.io/crates/l/laboratory?style=for-the-badge)

Checkout the [documentation](https://enokson.github.io/laboratory/) and the extensive [examples](https://github.com/enokson/laboratory/tree/master/examples) over on github.

Laboratory is layer 2 test runner solution that sits on top of the Rust test runner to provide unparalleled features and ease of use.

## Features
* before_all, before_each, after_all, after_each hooks  
* Different reporter options: spec, minimal, json, json-pretty, rust, dot, tap, list
* Reports test durations in: nanoseconds, microseconds, milliseconds and seconds  
* The use of custom assertion libraries  
* Exclude tests  
* Nested test suites  
* Test retry support
* The use of state  
* "should panic" testing
* Console highlighting
* Dynamic testing
* Highlights slow tests
* No weird macros to try to figure out or debug!
* Human readable code and test results

## Installation
In Cargo.toml:
```toml
[dev-dependencies]
laboratory = "2.0.0"
```
Then in your test files
```rust
#[cfg(test)]
mod tests {
    use laboratory::{describe, describe_skip, it, it_skip, it_only, expect};
}
```

## Getting Started
### Testing a simple function
```rust
// from examples/simple.rs
//###SIMPLE###//
```

Then run: 
```shell script
$ cargo test -- --nocapture
```

Result:  
```
//###SIMPLE-RESULT###//
```