testify_core 0.1.3

The core library for the testify framework, providing the core functionality and utilities.
Documentation
# Testify


**Testify** is a flexible, async-friendly test framework for Rust projects. It extends the built-in test system with powerful features like lifecycle hooks, test grouping, filtering, and case management—without sacrificing simplicity.

---

## ✨ Features


- **(almost) Drop-in test support**  
  Just use `#[testify::test]` and you're up and running—sync or async.

- **Lifecycle hooks**  
  Add `#[testify::setup]` and `#[testify::cleanup]` functions to run code before and after tests. No global state hacks required.

- **Test cases**  
  Define multiple named scenarios under one test with `#[testify::case(name = "...")]`.

- **Async-first**  
  With the `async-tokio` feature, you can write async tests and hooks without boilerplate.

- **Flexible filtering**  
  Run tests selectively by name (glob matching) or custom tags using `cargo testify`.

---

## 🔜 Roadmap


These features are on the way:

- **Better test structuring**  
  Less repetition when grouping tests or applying shared hooks.

- **Parallel test execution**  
  Speed up test runs by executing them concurrently—at the group and case level.

- **Shared test state**  
  Clean, isolated ways to pass state between setup, tests, and cleanup logic.

- **Group-level hooks**  
  Setup and cleanup for specific test groups, without nesting headaches.

---

## 🛠️ TODO


- [ ] Reduce boilerplate in nested/grouped test structures  
- [ ] Strip test-related code from release builds  
- [ ] Add a clean, configurable logging layer for test output  
- [ ] Support parallel execution with controlled ordering  
- [ ] Improve error reporting (test names, stack traces, failure context)

---

## 🚀 Why Use Testify?


If you're tired of boilerplate test harnesses, rigid execution order, or workarounds for async testing—**Testify** gives you the control and flexibility you're missing from Rust's default test system, while keeping tests expressive and simple.

---

## 📦 Usage


```rust
#[testify::main]

fn main() {}

#[testify::test]

fn my_test() {
    assert!(true);
}
```

For the full documentation, check [docs.rs/testify-rs](https://docs.rs/testify-rs).

## 🧪 Status


Early stage but production-experiment-ready. Try it, break it, file issues, and help shape where it goes.

## 📬 Contributions Welcome


Suggestions, bug reports, and PRs are all appreciated—especially from real-world use cases.