7 releases (breaking)
Uses new Rust 2024
| 0.6.0 | Nov 25, 2025 |
|---|---|
| 0.5.0 | Mar 8, 2025 |
| 0.4.0 | Dec 23, 2024 |
| 0.3.0 | Nov 8, 2024 |
| 0.0.0 | Apr 24, 2023 |
#2659 in Procedural macros
724 downloads per month
Used in 2 crates
13KB
201 lines
multiplatform_test
Provides a proc-macro that expands to testing on platforms relevant to
Hydroflow. By default, expands to testing on the host (using the normal
#[test] attribute) and wasm (using #[wasm_bindgen_test]).
For example, the test
use multiplatform_test::multiplatform_test;
#[multiplatform_test]
fn my_test() {
// ...
}
Expands to
#[test]
#[wasm_bindgen_test::wasm_bindgen_test]
fn my_test() {
// ...
}
Installation
[dependencies]
multiplatform_test = * # replace with version.
If you're using wasm naturally you will need to add the wasm_bindgen_test
crate as a dependency.
Usage
Specifying platforms
There are many platforms which can be specified:
test- Adds a standard#[test]attribute.tokio- Adds a#[tokio::test]attribute.async_std- Adds an#[async_std::test]attribute.hydroflow- Adds a#[dfir_rs::test]attribute.wasm- Adds a#[wasm_bindgen_test::wasm_bindgen_test]attribute.env_logging- Registersenv_loggerforlogging.env_tracing- Registers aFmtSubscriberwith anEnvFilterfortracing.
You can test on a subset of platforms by passing in the platforms in parens:
use multiplatform_test::multiplatform_test;
#[multiplatform_test(test, env_logging)] // Only test on the standard `#[test]` platform, but enables logging
fn my_test() {
// ...
}
expands to
use multiplatform_test::multiplatform_test;
#[test]
fn my_test() {
let _ = env_logger::builder().is_test(true).try_init();
// ...
}
Dependencies
~68KB