Please enable JavaScript.
Coggle requires JavaScript to display documents.
JUnit Plattform Parallel Execution Support (Challenges (Shared Resources…
JUnit Plattform Parallel Execution Support
Challenges
Shared Resources
Solution Ideas
ReentrantReadWriteLocks :check:
Ordering Execution Graph based on Test Metadata
System.out Threadlocal Multiplexer with Listener Support
Support JCIP Annotations
ThreadSafe
Immutable
NotThreadSafe
System.out
System.properties
Statics
SpringContexts
Other
Reporters (Test Result Reporter, ...)
Efficient Execution
The overhead for parallel safety should impact single threaded execution as little as possible
Blocked/Waiting threads should be minimized
Execution Control
For Extensions
Extensions would need a programmatic API to influence concurrency
For Users
Could be solved using Extensions
For other Engines
Engines can have a different model than Extensions
Could we add some kind of Autodetection
Types
Execute all Tests in class in the same thread
Parallel Execution Enabled
Execute all Tests of a Testcontainer in the same thread
Execute all Tests that use the same resources in the same thread
Locks
Deadlocks
Avoid deadlocks by acquiring/releasing locks in a consistent order
Lock Inheritance
Inherit locks from parent Container
WriteLocks => SameThread Execution for all children
For Engines
Should be easy to write an Engine that supports parallel execution with the infrastructure provided by the plattform