-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
We have a big codebase, and we have a lot of tests. A lot of those tests are ParameterizedTests that are connected to services that take a really long time for each test run. Unfortunately parallel test running is not really an option for us.
We had an idea to filter the ParameterizedTest arguments, however, since they can receive Enums, Fields, Classes, and Method sources, it is difficult to implement this.
My idea (which is probably not the best) is to introduce a class, that has a Stream<Arguments> filter(Stream<Arguments> arguments) method.
What we want to achieve, is to have either a round-robin, a random, or something else based run.
With this, we could run our tests with lets say, only 1 set of arguments, without touching the codebase.
Deliverables
- Have a ParameterizedTestArgumentsFilter class or interface
- Have a method
Stream<Arguments> filter(Stream<Arguments> arguments) - Use said class in the ParameterizedTests annotation.