In a project I was using a separate integrationTest source set with the JVM Test Suite approach recommended by Gradle link to instructions.
When done this way, the integration test sources will be in src/integrationTest instead of src/test. The classes in src/test will not be on the classpath of the integration tests.
When running Selfie with JUnit5, the current garbage collection logic is hardcoded to only look for *.ss files in src/test/ and performs a Class.forName(...) to see if that test still exists and has tests that match the snapshot. If it doesn't find a match, it deletes the file.
Since the unit tests are invisible on the integrationTest classpath, though, Class.forName(...) throws a ClassNotFoundException so selfie assumes this is a stale file and deletes. As a consequence, all the unit test snapshots are deleted when running the integrationTest task.
Is there some way to get the correct source root from Junit or something like that to avoid deleting unmanaged files?
A reproducer of the described issue can be found here with instructions in the README https://github.com/aelfric/selfie-bug-report-reproducer
In a project I was using a separate integrationTest source set with the JVM Test Suite approach recommended by Gradle link to instructions.
When done this way, the integration test sources will be in
src/integrationTestinstead ofsrc/test. The classes insrc/testwill not be on the classpath of the integration tests.When running Selfie with JUnit5, the current garbage collection logic is hardcoded to only look for
*.ssfiles insrc/test/and performs aClass.forName(...)to see if that test still exists and has tests that match the snapshot. If it doesn't find a match, it deletes the file.Since the unit tests are invisible on the integrationTest classpath, though,
Class.forName(...)throws aClassNotFoundExceptionso selfie assumes this is a stale file and deletes. As a consequence, all the unit test snapshots are deleted when running theintegrationTesttask.Is there some way to get the correct source root from Junit or something like that to avoid deleting unmanaged files?
A reproducer of the described issue can be found here with instructions in the README https://github.com/aelfric/selfie-bug-report-reproducer