2 releases
0.0.2 | Oct 1, 2024 |
---|---|
0.0.1 | Sep 27, 2024 |
#1138 in Procedural macros
Used in fakehub
10KB
51 lines
tagrs. Rust test tagging
tagrs
is a tool for Rust test tagging.
Motivation. There was no such tool for Rust, that can run tests conditionally, based on tags, similarly to JUnit's @Tag.
How to use
Here is an example:
#[cfg(test)]
mod tests {
use anyhow::Result;
use tagrs::tag;
use std::thread;
use std::time::Duration;
#[tag("fast")]
#[test]
fn runs_fast() -> Result<()> {
assert_eq!(1 + 1, 2);
Ok(())
}
#[tag("slow")]
#[test]
fn runs_slow() -> Result<()> {
thread::sleep(Duration::from_secs(2));
assert_eq!(2 + 2, 4);
Ok(())
}
#[tag("nightly")]
#[test]
fn runs_very_slow() -> Result<()> {
thread::sleep(Duration::from_mins(2));
assert_eq!(4 + 4, 8);
Ok(())
}
}
then run:
TTAG=fast cargo test
It should run only runs_fast
test, while runs_slow
, runs_very_slow
will
be ignored.
You can run a group of tags as well. Either with:
TTAG=slow,fast cargo test
or with *
:
TTAG=* cargo test
The former will run only tests that have slow
or fast
tag, while the latter
will run all tests.
How to contribute?
Make sure that you have Rust and just installed on your system, then fork
this repository, make changes, send us a pull request. We will
review your changes and apply them to the master
branch shortly, provided
they don't violate our quality standards. To avoid frustration, before sending
us your pull request please run full build:
just full
Dependencies
~5.5MB
~118K SLoC