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
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
Stream<Arguments> filter(Stream<Arguments> arguments)