1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
//! [![Latest Version](https://img.shields.io/crates/v/fluid.svg)](https://crates.io/crates/fluid) //! [![Documentation](https://img.shields.io/badge/api-rustdoc-purple.svg)](https://docs.rs/fluid) //! [![Lines of Code](https://tokei.rs/b1/gitlab/Boiethios/fluid-rs)](https://gitlab.com/Boiethios/fluid-rs/blob/master/src) //! //! `fluid` is a library to write human readable tests. //! //! This crate is in alpha state. It is fully usable, but one can (rightfully) //! think that there are incomplete or missing features. The maintainer would //! be very happy if he was given some feedback, issues, pull requests, etc. //! //! __________ //! //! `fluid` is a crate to make the tests more readable and easier to write, //! mainly inspired by [xUnit](https://xunit.github.io/). //! It is still in an unstable state. Be adviced that in future alphas //! — let alone in the release — it could/will be very different. //! //! Wiki //! ---- //! //! Detailed information is in the [wiki](https://docs.rs/fluid/latest/fluid/wiki/index.html). //! //! Goals //! ----- //! //! The current goals are to provide: //! //! - ☑ Easily readable tests: they should be read like english sentences. //! - ☑ Nice and understandable error messages. //! - ☐ The most possible useful assertions for common cases: numbers, `Iterators`, `Options`, `Results`, etc. //! - ☐ A full test framework that launches the tests, displays the failures, etc. //! Since this feature is not stabilized, it will be gated in the nightly compiler. //! //! Non-goals: //! //! - Run the tests fast: under the hood, there are some code generation at compile-time, //! especially for the `#[theory]` and/or `#[session]` tests. This will never be as fast as the standard tests. //! //! Known bugs/limitations //! ---------------------- //! //! - The stringification of the left element is not perfect when the procedural macros are used. //! That is because there is no way to render the token as they were written by the user (as far as I know). //! - Hygiene issue. For now, every span is located at the macro call site. //! That means that the tests report a failure at the `#[fact]`, `#[theory]` or `#[session]` line. //! //! Changelog //! --------- //! //! See the [dedicated file](https://gitlab.com/Boiethios/fluid-rs/blob/master/CHANGELOG.md). //! //! Roadmap //! --------- //! //! See the [dedicated file](https://gitlab.com/Boiethios/fluid-rs/blob/master/ROADMAP.md). #![deny(unused)] #![forbid( missing_docs, unsafe_code, missing_debug_implementations, bare_trait_objects )] mod assertions; pub mod core; pub mod prelude; #[cfg(test)] #[rustfmt::skip] mod tests; pub mod traits; pub mod wiki;