# `macrotest`
[![Travis-CI](https://api.travis-ci.com/eupn/macrotest.svg?branch=master)](https://travis-ci.com/eupn/macrotest)
[![Crates.io](https://img.shields.io/crates/v/macrotest)](https://crates.io/crates/macrotest)
![MSRV 1.56](https://img.shields.io/badge/MSRV-1.56-orange.svg)
[![docs.rs](https://docs.rs/macrotest/badge.svg)](https://docs.rs/macrotest/)
[![Crates.io](https://img.shields.io/crates/d/macrotest)](https://crates.io/crates/macrotest)
[![Crates.io](https://img.shields.io/crates/l/macrotest)](https://crates.io/crates/macrotest)
Similar to [trybuild], but allows you to test how declarative or procedural macros are expanded.
*Minimal Supported Rust Version: 1.56*
----
## Documentation
Please refer to the [documentation](https://docs.rs/macrotest).
## Example
Install [`cargo expand`].
Add to your crate's Cargo.toml:
```toml
[dev-dependencies]
macrotest = "1"
```
Under your crate's `tests/` directory, create `tests.rs` file containing the following code:
```rust
#[test]
pub fn pass() {
macrotest::expand("tests/expand/*.rs");
}
```
Populate the `tests/expand/` directory with rust source files. Each source file is a macro expansion test case.
See [test-project](test-project) and [test-procmacro-project](test-procmacro-project) for the reference.
[trybuild]: https://github.com/dtolnay/trybuild
[`cargo expand`]: https://github.com/dtolnay/cargo-expand