You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vadim Pakhnushev (Jira)" <ji...@apache.org> on 2023/04/14 12:55:00 UTC

[jira] [Commented] (IGNITE-18947) Unify integration tests in runner module

    [ 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)