- Append generated test macro so next test macros are aware of it (see #291).
- MSRV to 1.70.0 (see #284 thanks to @rnbguy)
#![no_std]
support: now you can userstest
also inno_std
lib (see #282 thanks to @rnbguy)#[context]
to have test function name and other useful thighs on the tip of your fingers (see #177)
- You can now use environment variables in
#[files]
with an optional default value (see #277). - You can now set a base_dir for
#[files]
with the$[base_dir = "..."]
attribute (see #277).
- Now it's possible destructuring input values both for cases, values and fixtures. See #231 for details
- Implemented
#[ignore]
attribute to ignore test parameters during fixtures resolution/injection. See #228 for details
- Lot of typo in code
- Add feature
crate-name
enabled by default to opt-in crate rename support. See #258
- Implemented
#[by_ref]
attribute to take get a local lifetime for test arguments. See #241 for more details. Thanks to @narpfel for suggesting it and useful discussions. - Support for import
rstest
with another name. See #221
- Don't remove Lifetimes from test function if any. See #230 #241 for more details.
PathBuf
does no longer need to be in scope when using#[files]
(see #242)#[from(now::accept::also::path::for::fixture)]
See #246 for more details
- Defined
rust-version
for each crate (see #227)
-
#[once]
fixtures now require the returned type to beSync
to prevent UB when tests are executed in parallel. (see #235 for more details) -
#[future(awt)]
and#[awt]
now properly handle mutable (mut
) parameters by treating futures as immutable and treating the awaited rebinding as mutable.
- Now
#[files]
accept also parent folders (see #205 for more details).
- Wrong doc test
- Docs
- Add support for
RSTEST_TIMEOUT
environment variable to define a max timeout for each function (see #190 for details). Thanks to @aviramha for idea and PR #[files("glob path")]
attribute to generate tests based on files that satisfy the given glob path (see #163 for details).
- Switch to
syn
2.0 and edition 2021 : minimal Rust version now is 1.56.0 both forrstest
andrstest_reuse
(see #187)
- Fixed wired behavior on extraction
#[awt]
function attrs (See #189)
- Add
#[awt]
and#[future(awt)]
to.await
future input
- Fixed wrong message when timeout tests panic before timeout expire (See #171)
- Show
TEST START
banner only when trace some argument: See #158 for details. - Add values to test name: See #160 for details.
- Updated test fixtures to 1.64.0 compiler's error messages.
- Timeout not compile if one of its test arguments il not a copy type [see #154]
- Feature gated async timeout via
async-timeout
feature [see #148]
- Removed
async-std
build dependency [see #148]
#[timeout(duration)]
test implementation for both sync and async tests (See #136)
- Split rstest in separated crates for macro and libs (See #32)
- Add
#[once]
fixture attribute to create static fixtures (See #119)
- Fixed check of available features before to enable macro diagnostic (See #126)
- use mutable fixture in in cases and value list (See #121)
- Rename fixture (See #107 and #108)
- Wired behaviour in
#[fixture]
with generics types that have transitive reference (See #116)
#[future]
arg attribute to removeimpl Future<>
boilerplate. (See #98)
- Magic Conversion: use literal string for define values where type implements
FromStr
trait (See #111)
#[default]
arg attribute cannot use key = arbitrary rust expression syntax (is unstable rust-lang/rust#78835). So we switched to#[default(expression)]
syntax. (See #117)
- #117 introduced an unstable syntax
This version intruduce the new more composable syntax. And async fixtures (thanks to @rubdos)
- New syntax that leverage on function and argument attributes to implement all features (See #99, #100, #101, #103, #109 and #102)
async
fixtures (See #86, #96. Thanks to @rubdos).
- Moved integration tests resouces in
test
directory (See #97)
- Implemented reusable test list with
rstest_reuse
external crate (See #80)
- Define default values instead use trivial fixtures (See #72).
- Injecting test attribute. You can choose your own test attribute (should be something like
*::test
) for each test. This feature enable every async runtime (See #91).
- Start to use
rstest
to testrstest
(On going task #92)
- Introducing async tests support. Leverage on
async_std::test
to automatically switch to async test (both for single, cases and matrix) (See #73)
- Hook argument name to fixture by remove starting
_
(See #70) - Every
case
can have a specific set of attributes (See #82)
- Removed useless
rstest_parametrize
andrstest_matrix
(See #81). From 0.5.0 you can use justrstest
to create cases and values list. - Removed
cargo-edit
test dependecy (See #61)
- Fixed a false unused mut warning regression introduced by partial fixtures (See 8a0ff08)
- Fixed unused attribute warning when use
should_panic
attribute (See #79)
README.md
links- License files
- Use just
rstest
for implementing all kind of tests (See #42) - New matrix tests render: indicate argument name and nest groups in modules (See #68 for details)
- CI (github actions) build and tests (See #46)
- Better
README.md
that introduce all features - (From rustc 1.40) Deprecated
rstest_parametrize
andrstest_matrix
:rstest
now cover all features - Refactored
- Error message if fixture or value are used more than once
- Fixed README, crate description, changelog dates
- Injecting fixture with partial values in all tests (See #48)
- Add new
rstest_matrix
macro to build tests by carthesian product of input arguments (See #38)
- Just bugs in tests
- Use
unindent
crate instead the home madeDeindent
trait - Use
itertools
- Refactor parsing
- Introduced
fixture
macro: Now you must annotate your fixture by this tag. See #5 - Support for arbitrary rust code without use
Unwrap(str_lit)
trick. See #19 and #20 (deprecateUnwrap()
) - Support for tests that return
Result()
, See #23 - Support for dump test arguments
rstest_parametrize
use module to group cases (See #13)- You can optionally give a an name for each test case (See #11)
- Docs
- Descriptive error handling: See #12, #15
rstest_parametrize
can leave comma after last case
rstest_parametrize
should catch error in input! See #1, #14- Use negative literal. See #18
- You need to use
fixture
to tag all your fixtures. - Migrate to 2018 Epoch
- Tests: Refactoring and speed up
- Better error handling
- crate.io categories
First Public release.
Just my testing and private use.