[
https://issues.apache.org/jira/browse/IGNITE-18947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Evgeny Stanilovsky updated IGNITE-18947:
----------------------------------------
Fix Version/s: 3.2
(was: 3.1)
> 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.2
>
>
> 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)