[ https://issues.apache.org/jira/browse/IGNITE-18947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17712377#comment-17712377 ]
Vadim Pakhnushev commented on IGNITE-18947: ------------------------------------------- I wonder if it would make sense to move all {{@WorkDirectory Path workDir}} to the base {{IgniteIntegrationTest}} where the {{WorkDirectoryExtension}} is registered. > Unify integration tests in runner module > ---------------------------------------- > > Key: IGNITE-18947 > URL: https://issues.apache.org/jira/browse/IGNITE-18947 > Project: Ignite > Issue Type: Improvement > Reporter: Roman Puchkovskiy > Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > We want to make sure that all Ignite instances started by a test get stopped > after the test stuite stops, regardless of the tests outcome. > IGNITE-18874 introduces a JUnit extension that performs such a cleanup. We > want to make sure that any integration test (running Ignite instances) in the > runner module gets executed with this extension. The current approach of > IGNITE-18874 is to make this extension register automatically, but such an > automatic registration brings a problem: WorkDirectoryExtension's > after/after-all methods remove directories before the cleanup extension stops > Ignite instances, which is weird. > The best thing would be to make sure that we always register this extension > explicitly (declaratively) for each test that needs it. > It is suggested to add one (or a couple) of base classes registering the > extension, so that each integration test class in the runner module extends > one of them. > # IGNITE-18874 already introduces {{TestStartingIgnites}} that is used as a > base of most of the mentioned tests > # We should migrate tests extending {{IgniteAbstractTest}} to the same > approach (make {{IgniteAbstractTest}} one of the base classes mentioned > above, or make it extend one of these classes, or...) > # Make sure that every single test class that can start ignites in the > runner module extends one of the mentioned base classes > # Make sure that build fails if there is such non-complying test classes > (not clear yet how do achieve this) > # Maybe it makes sense to unify how we write test classes in the runner > module. Currently, there seems to be 2 approaches: in one, a shared cluster > is started for all tests; in another, a cluster is started per test. Both > approaches have pros and cons. Maybe we should leave both of them (in > IGNITE-18874, the corresponding base classes are renamed to reflect this > shared/per-test distinction). > We should also probably think whether we should leave the automatic > registration of the cleanup extension after the measures described in this > issue. Probably we should, just in case. -- This message was sent by Atlassian Jira (v8.20.10#820010)