Hello Igniters,
I'd like to discuss the way we treat system properties in our test codebase.
It's a common pattern where we set system property in "beforeTestsStarted"
and clear it in "afterTestsStopped". Purest example that I've found is class
"RedisProtocolGetAllAsArrayTest".
There are similar things with "beforeTest"/"afterTest" or huge
"try/finally" blocks
right in test methods.
I think that all this code can be avoided and solution might look like this:
@Test
@WithSystemProperty(key = IGNITE_PROPERTY_NAME, value = "true")
public void testSomething() throws Exception {
...
}
Same annotation might be used on class, this way new system property will
be applied to all test methods in the class.
I already created the issue for this change [1] and PR with demo [2]. It
contains
implementation of annotation processing and a few migrated tests. If you
like
the idea then I will migrate all the other tests on the same mechanism.
What do you think?
[1] https://issues.apache.org/jira/browse/IGNITE-11323
[2] https://github.com/apache/ignite/pull/6109
--
Sincerely yours,
Ivan Bessonov