4 releases (breaking)
new 0.3.0 | Nov 8, 2024 |
---|---|
0.2.0 | Aug 30, 2024 |
0.1.0 | May 24, 2024 |
0.0.0 | Apr 24, 2023 |
#2223 in Procedural macros
324 downloads per month
Used in hydroflow
12KB
203 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#[hydroflow::test]
attribute.wasm
- Adds a#[wasm_bindgen_test::wasm_bindgen_test]
attribute.env_logging
- Registersenv_logger
forlog
ging.env_tracing
- Registers aFmtSubscriber
with anEnvFilter
fortracing
.
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
~77KB