In general, I can run my tests all in parallel with no issues. However, there are some circumstances when I would like to run a set of tests such that all can run in parallel, except for a subset which can run in parallel with the rest of the set but not with themselves.
An example of this would work as follows. Run set S in parallel, but do not allow any test from subset T to run at the same time
S := {Test1, Test2, Test3, Test4, Test5}
T := {Test1, Test2}
A run execution for this configuration, when thread-count is set to 3, may look like this:
Test1 start
Test3 start
Test4 start
Test3 end
Test5 start
Test1 end
Test2 start
Test4 end
Test5 end
Test2 end
The key is that this still utilizes all threads efficiently, while at the same time allowing specific tests to be mutually exclusive.
You'll note that using the current dependency mechanism does not exactly fulfil this use case. For example, if I had set Test2 to be dependant on Test1 then if I wanted to run Test2 alone, first Test1 would have to run.
To re-iterate, dependency isn't the use case - exclusion is the use case. Another similar terminology would be being able to configure locks. Test1 and Test2 each require the lock L, and if one has acquired L the other must wait.
I would be happy to work on this feature, if need be.
~Lindsey