Roman Puchkovskiy created IGNITE-18947:
------------------------------------------

             Summary: 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
             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)

Reply via email to