Releases: sbabcoc/JUnit-Foundation
Releases · sbabcoc/JUnit-Foundation
Migrate Params class out to Java-Utils; update documentation
- Given its wider usefulness, the
Paramsclass has been migrated out to the Java-Utils library. - README - Maven and Gradle integration examples have been updated to the latest versions and techniques.
More thread-related fixes
- DepthGauge: Replace thread-local counter with simple
int(client will handle threading). - CreateTest: Revise based on changes to DepthGauge, storing instances as thread-local.
- RunReflectiveCall:
- methodHash: Incorporate thread hash code as the most significant factor.
- fireBeforeInvocation: Replace flat
has-notifiedtracking with call depth counting. - fireAfterInvocation: Replace flat
has-notifiedtracking with call depth counting.
Refine Byte Buddy transform to eliminate muddled matching
junit-foundation-9.0.2 [maven-release-plugin] copy for tag junit-foundation-9.0.2
CORRECTION: Implement support for parallel execution
Re-publish... the last release didn't have the new code in it.
Implement support for parallel execution
LifecycleHooks: MoveCreateTestandRunclasses to their own files; Complete overhaul of instrumentation code based on feedback from Rafael Winterhalter (creator of Byte Buddy).Run: Add explicit tracking of start/finish notifications; migrate attachment of registeredRunListenerservice providers fromRunChild; refactor to facilitate parallel execution.RunChild: Use factored methods of theRunclass to attach run listeners, save thread runners and publish start/finish notifications; remove call depth tracking; revise to support interception for children of all types.RunReflectiveCall: Add explicit tracking of start/finish notifications; remove call depth tracking;Finished: New interceptor class to handle thefinishedmethod ofRunnerSchedulerobjects.- Move
CreateTestandRunclasses to their own files. - Delete
CreateTestClassandTestClassWatcher, which couldn't be universally supported and were of no discernible value.
Add interception of createTestClass() and run() methods for subtypes of the Suite class
- Add interception of createTestClass() and run() methods for subtypes of the Suite class
Prevent duplicate notifications; switch from scheduler wrapper to standard RunListener
- TestClassWatcher: Remove start/finish methods, which are essentially useless in parallel execution.
- Replace wrapper for runner scheduler (which isn't used by parallel runs) with standard RunListener.
- DepthGauge: New class to provide call depth counting for intercept methods.
- RunAnnouncer: New standard RunListener that produces enhanced RunWatcher notifications.
- Revise intercept methods, adding call depth counting and only sending notifications from top level.
- LifecycleHooks: For BlockJUnit4ClassRunner subtypes, add interception of createTestClass() and run() methods.
- Run: Switch runner stack from Stack to ArrayDeque; only notify about runner start/finish if current runner isn't top of stack; remove attachment of RunListener service providers.
- RunChild: Add attachment of RunListener service providers.
- AtomicTest: Switch constructor argument from FrameworkMethod to Description.
- Update README to document the current API.
Major revisions to replace TestClass context with test runner context
- MethodWatcher: Add runner argument to methods to provide context.
- RunWatcher: Revise methods to replace TestClass/method context with AtomicTest.
- Replace deprecated TestClassWatcher interface with TestClassWatcher2.
- UnitTestWatcher: Update bases on MethodWatcher revisions.
- Replace remaining uses of TestClass as context with runner object.
- Add code to track the active test runner of each thread.
- RunReflectiveCall: Only try to retrieve runner for "particle" methods.
- Configure unit tests to run in parallel.
- Update README to document current API.
Publish parameters as Optional Map instead of Object array
- Publish parameters as Optional Map instead of Object array.
- Revise artifact capture classes and unit tests to work with new parameter format.
- Add Param class to encapsulate key/value pairs
- Add static method to create Param object
- Add static method to create parameter map from a set of Param objects
Disambiguate target mapping methods
- Revise names of mapping methods that take a test class instance (a.k.a. - target) as their argument.