tanu_core/
lib.rs

1//! # Tanu Core
2//!
3//! Core functionality for the tanu WebAPI testing framework.
4//!
5//! This crate provides the fundamental building blocks for tanu, including:
6//! - Test runners and execution logic
7//! - HTTP client functionality  
8//! - Assertion macros and utilities
9//! - Configuration management
10//! - Test reporting infrastructure
11//!
12//! Most users should use the main `tanu` crate rather than importing `tanu-core` directly.
13
14#[doc(hidden)]
15pub mod assertion;
16pub mod config;
17pub mod error;
18pub mod http;
19pub mod reporter;
20#[doc(hidden)]
21pub mod runner;
22
23// Re-export procedural macros
24pub use tanu_derive::{main, test};
25
26// Re-export error handling crates
27pub use anyhow;
28pub use eyre;
29
30/// Type alias for project names in tanu configuration.
31///
32/// Project names are used to organize tests into different environments
33/// or configurations (e.g., "staging", "production", "development").
34/// Each project can have its own configuration settings including
35/// base URLs, timeouts, and retry policies.
36pub type ProjectName = String;
37
38/// Type alias for module names in test organization.
39///
40/// Module names correspond to Rust module paths and are used to
41/// group related tests together. For example, "api", "auth", "users".
42/// They're used for filtering and organizing test output.
43pub type ModuleName = String;
44
45/// Type alias for individual test names.
46///
47/// Test names identify specific test functions within a module.
48/// Combined with module and project names, they provide unique
49/// identification for each test case in the system.
50pub type TestName = String;
51
52// Re-export key functionality
53pub use config::{get_config, get_tanu_config, Config, ProjectConfig};
54pub use error::{Error, Result};
55pub use reporter::{ListReporter, NullReporter, Reporter};
56pub use runner::{
57    Filter, ModuleFilter, ProjectFilter, Runner, TestIgnoreFilter, TestInfo, TestNameFilter,
58};