Open jcjgraf opened 1 year ago
Thanks for the detailed report! Your analysis sounds right, the heuristics to construct the tests names are somewhat difficult and can be messed up by extensions to basic libtest usage.
I agree rstest support would be nice to add.
If you crate is used together with rstest's parametrized tests feature, the directory created by
testdir!()
in one parametrized test function collides with the one created in a different parametrized test function.Expected Behaviour
I would expect that the
PathBuf
returned bytestdir!()
is always unique and new, and never collides with one created in a different testing function.Actual Behaviour
If two rstest test function have multiple cases, rstest names the test cases
func1::case1
,func1::case2
for test functionfunc1
, andfun2::case1
,func2::case2
for the second one. Tempdir thinks thatcase1
,case2
are the names of the test functions, which are however not unique in a module. This leads to a reuse of the test dir.Reproduce
Run the unit tests in the following MVE (requires rstest) using
cargo test -- --nocapture
.I understand that this issue is related to the interplay of your crate with another one. But since rstest is rather popular, it would be great if both would play well together.
Having had a quick lock at the code, it seems like the
crate::private::extract_test_name
would need to be improved and returntestfunc::caseN
instead of justcaseN
for parametrized tests.What do you think?