Support for adding tags to suites/contexts/examples
Opened this issue · 4 comments
I have the feeling that instead of implementing dedicated logic for skipping of/focussing on specific suites/contexts/examples it might be a good idea to instead add support for adding custom tags.
This along with a way to filter for tags (both positively foo
, as well as negatively ~bar
) would then add functionality equivalent to these features:
And as we're doing Rust we might as well go the extra mile and make the tags type-safe.
Suite
/Context
/Example
would thus be generic over E: Environment
as well as T: Tag
.
(We should further more be able to provide a stable derive for TryFrom<&'a str> for T
via macros 1.1, afaict.)
This way one would define the Tags for a given test scenario (group of suites tied to the types of a given Environment), and any typo within the test code would be caught by the compiler, while passing an unknown tag to an (at this point still) imaginary CLI à la cargo spec --filter="baz"
would trigger an error message on execution.
Would the Macro 1.1, require users to apply the #[Derive(TraitWhatever)]
statement to get the compile time failures?
Probably, yes. Unless rspec provided a convenience macro à la
rspec_tags!(
foo, bar, baz, blee
);
which would do all the necessary work for you.
as I said, not convince by the need. I would like someone to step up and say that he/she really needs this feature.
I’d like to be able to mark contexts as smoke
, exhaustive
, etc. So that I can easily add …
Smoke Test
Run the test suite using
$ cargo run tests —include=smoke
for a quick smoke test.
… to my project’s documentation.