# Rust Crate Compilation Test helper
> Swiss army knife for `proc-macro` crates testing.
[](https://travis-ci.org/denzp/rust-crate-compile-test)
[](https://crates.io/crates/crate-compile-test)
## Purpose
The library was highly inspired by [laumann/compiletest-rs](https://github.com/laumann/compiletest-rs), and it's origin [Rust's compiletest](https://github.com/rust-lang/rust/tree/master/src/tools/compiletest).
Difference between them and this library is that latter lets to test whole crates instead of single compilation units.
This can be useful if your `proc-macro` uses **cargo** (or **xargo**) or you want to test more complex scenarios.
**There is a lot of work** needs to be done, to get feature parity with the other Rust compilation testing libs, currently planned only:
* Successful Compilation tests
* Failed Compilation tests
* Macro Expansion tests
## Installation
No third party tools are needed. Just add the library to `dev-dependencies`:
```
[dev-dependencies]
crate-compile-test = "0.1"
```
## Usage
The example usage can be found at `example` directory.
### Failed Compilation messages
Expected messages specification is similar to original [compiletest's specification](https://github.com/rust-lang/rust/blob/master/src/test/COMPILER_TESTS.md#summary-of-error-info-commands), with small addition - you can specify either **error code** or **error message**:
``` rust
use mod2::func3; //~ ERROR unresolved import `mod2::func3`
fn func2() -> NonExistingType {
0
}
//~^^^ ERROR E0433
```
### Macro Expansion
TBD