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)