I'm also +1 on option 2.
If there are no other objections, then I would go ahead and merge
https://github.com/apache/iceberg/pull/9161 at the end of the week. That
should give people some time to add their feedback to the PR.

Thanks
Eduard

On Thu, Dec 7, 2023 at 6:06 PM Jack Ye <yezhao...@gmail.com> wrote:

> Looking at the referenced open issue on Junit5 side, it seems like at
> least the community is actively working on a @ParameterizedContainer
> solution. In that case I would +1 for option 2, since we have an easy path
> for moving to the official class-level annotation when that is ready.
>
> -Jack
>
> On Thu, Dec 7, 2023 at 8:27 AM Jean-Baptiste Onofré <j...@nanthrax.net>
> wrote:
>
>> Hi Ed,
>>
>> I like option 2, it simplifies the parameterized support.
>>
>> Just my $0.01
>>
>> Regards
>> JB
>>
>> On Thu, Dec 7, 2023 at 5:16 PM Eduard Tudenhoefner <
>> etudenhoef...@apache.org> wrote:
>>
>>> Hey everyone,
>>>
>>> a while ago we (thanks to many contributors that helped here) started
>>> migrating tests from JUnit4 to JUnit5. While most things are
>>> straightforward to migrate, parameterized tests are not.
>>>
>>> JUnit5 doesn't support parameterization at the class level yet
>>> <https://github.com/junit-team/junit5/issues/878>, which makes it
>>> difficult to migrate existing parameterized tests to JUnit5.
>>>
>>> There are a few possible options and I'd like to see what the community
>>> thinks here:
>>>
>>> 1) When migrating to JUnit5, parameterized testing is moved to every
>>> test method, meaning that every test method would have a
>>> *@ParameterizedTest* and a *@ValueSource/@MethodSource *annotation.
>>>
>>> This is the official JUnit5 approach that is recommended. However, it is
>>> quite repetitive, as every single test method now needs to define its own
>>> parameters.
>>> One example of this approach can be seen in #9185
>>> <https://github.com/apache/iceberg/pull/9185>, where *TestFlinkScan* is
>>> migrated to JUnit5.
>>>
>>> 2) We could introduce a similar approach that the Flink community did
>>> with https://issues.apache.org/jira/browse/FLINK-25315 /
>>> apache/flink#20145 <https://github.com/apache/flink/pull/20145>.
>>> This would introduce a custom *ParameterizedTestExtension* with two
>>> additional *@Parameter / **@Parameters* annotations to mimic the same
>>> behavior that JUnit4 provided.
>>> One example of this approach can be seen in #9161
>>> <https://github.com/apache/iceberg/pull/9161>, where
>>> *TestDictionaryRowGroupFilter* is migrated to use this way of
>>> parameterized testing.
>>>
>>> I guess another option would be to wait until this is properly supported
>>> by JUnit5, but it is unclear when that will be.
>>>
>>>
>>> Eduard
>>>
>>>
>>>
>>>

Reply via email to