Ivan, thank you for clarification. If nobody is against I can uncomment them in the context of IGNITE-711.
пт, 5 июл. 2019 г. в 11:33, Павлухин Иван <vololo...@gmail.com>: > Ivan, > > I think that it is a really good that you found those not tested > examples. Thank you! > > пт, 5 июл. 2019 г. в 11:31, Павлухин Иван <vololo...@gmail.com>: > > > > Ivan, > > > > I uncommented all tests referring to IGNITE-711 [1] in > > BasicExamplesSelfTest and all they passed. > > > > Generally, example tests are needed to be sure that our examples > > launch. And commented tests refer to existing examples. So, an ideal > > way here is to uncomment them in scope of IGNITE-711 [1], removal is > > not a good option. And I do not expect much problems here because we > > fully support Java 8 for a long time. > > > > [1] https://issues.apache.org/jira/browse/IGNITE-711 > > > > пн, 1 июл. 2019 г. в 17:10, Ivan Fedotov <ivanan...@gmail.com>: > > > > > > Hi, Igniters > > > > > > During work on IEP-30, which is about JUnit migration, I found that > some > > > tests in examples module were commented [1] with the remark, that they > > > should be fixed in the ticket IGNITE-711 [2] which is about the > > > implementation of Java 8 examples. > > > > > > In the context of the ticket IGNITE-10973 [3] I want to uncomment them > and > > > mark as @Disabled. Is it really need to disable mentioned tests or I > can > > > just remove them as outdated? > > > > > > [1] > > > > https://github.com/apache/ignite/pull/6606/files#diff-ed48193d25d777a2c30c187fa20a1a65L65 > > > [2] https://issues.apache.org/jira/browse/IGNITE-711 > > > [3] https://issues.apache.org/jira/browse/IGNITE-10973 > > > > > > > > > вт, 26 февр. 2019 г. в 18:51, Ivan Fedotov <ivanan...@gmail.com>: > > > > > > > Ivan, > > > > I will investigate GridAbstractTest refactoring issue more precisely > when > > > > I finish with JUnit3Legacy classes. Anyway, I will keep in touch > with you > > > > and the community on the most significant moments. > > > > > > > > JUnit5 docs say that functionality is not full "especially with > regard to > > > > reporting". On the other hand, I also agree with docs that it is the > > > > easiest way that does not require to touch CI infrastructure. I am > going to > > > > try @RunWith(JUnitPlatform.class) construction with features from > IEP to > > > > make sure that we will have the full support of them. The > alternative way > > > > is dynamic tests [1], but the problem is that we add methods to > suites > > > > manually, not via @Test annotation. It is some kind of rollback to > JUnit3 > > > > syntax. > > > > > > > > Anton, > > > > thank you for the reminder, I will update IEP according to the > > > > conversation. > > > > > > > > [1] https://www.baeldung.com/junit5-dynamic-tests > > > > > > > > вт, 26 февр. 2019 г. в 17:56, Anton Vinogradov <a...@apache.org>: > > > > > > > >> Folks, > > > >> > > > >> Please make sure you keep IEP updated and each issue mentioned. > > > >> > > > >> On Tue, Feb 26, 2019 at 4:28 PM Павлухин Иван <vololo...@gmail.com> > > > >> wrote: > > > >> > > > >> > Ivan, > > > >> > > > > >> > Thank you for detailed answers! I would put a great care to > > > >> > @RunWith(JUnitPlatform.class) construction. As stated in junit5 > docs > > > >> > [1] it does not support all features and unfortunately it is not > clear > > > >> > how limited it is. Also, it is some kind of transitional mechanism > > > >> > which was not designed for being a long term solution. > > > >> > > > > >> > And I fully support an idea of refactoring GridAbstractTest. I > think > > > >> > it is possible to make a significant improvement here. > > > >> > > > > >> > [1] > > > >> > > > > >> > https://junit.org/junit5/docs/current/user-guide/#running-tests-junit-platform-runner > > > >> > > > > >> > пн, 25 февр. 2019 г. в 17:41, Ivan Fedotov <ivanan...@gmail.com>: > > > >> > > > > > >> > > Hello Nikolay. > > > >> > > > > > >> > > The prime benefits are more comfortable work with flaky tests, > Java 8 > > > >> > tests > > > >> > > compatibility, user-friendly syntaxis in parametrized tests and > > > >> others. > > > >> > > The most significant features list you can find in IEP-30 > Motivation > > > >> > > section. > > > >> > > > > > >> > > If you have any specific questions about JUnit5 feel free to > ask me. > > > >> > > > > > >> > > пн, 25 февр. 2019 г. в 16:55, Nikolay Izhikov < > nizhi...@apache.org>: > > > >> > > > > > >> > > > Hello, Ivan. > > > >> > > > > > > >> > > > May be I miss some mail - if yes, can you repeat it. > > > >> > > > What is advantages of migration from junit 4 to 5? > > > >> > > > Why we should do it? > > > >> > > > > > > >> > > > > > > >> > > > пн, 25 февр. 2019 г. в 16:33, Ivan Fedotov < > ivanan...@gmail.com>: > > > >> > > > > > > >> > > > > Ivan, > > > >> > > > > That is my thoughts according to your questions. > > > >> > > > > > > > >> > > > > 1. I tried to implement test suits with JUnit4 compatibility > > > >> layer. > > > >> > The > > > >> > > > > basic concept is to use @RunWith(JUnitPlatform.class) > > > >> @SelectClasses > > > >> > > > > ({...})[1] and on > > > >> > > > > CI Ignite it works fine. > > > >> > > > > > > > >> > > > > 2. According to @Rules, there are several ways to solve it: > > > >> > > > > 2.1 Leave JUnit4 code without changes. It will work > because of > > > >> > > > Vintage > > > >> > > > > module > > > >> > > > > 2.2 Rewrite the @Rule as an Extension. The work of > extension > > > >> is > > > >> > > > similar > > > >> > > > > to the @Rules work, but it is extracted in an Extension > class. > > > >> > > > > For more information about extensions, please, follow > the IEP > > > >> > [2]. > > > >> > > > > In my opinion, the easiest and the most understandable way > is to > > > >> > leave > > > >> > > > > GridAbstractTest in current form. It will work with JUnit5 > > > >> > > > > syntaxis and abilities. > > > >> > > > > > > > >> > > > > 3. I faced a couple of problems during dealing with dynamic > and > > > >> > static > > > >> > > > > tests in one project with JUnit5. The problem occurs with > surefire > > > >> > > > version: > > > >> > > > > static tests work fine with 2.21x and earlier and with > dynamic > > > >> > tests, the > > > >> > > > > situation is vice versa, it works with > 2.21x surefire > version. > > > >> > > > > We can use helpful surefire dependency to use static tests > with > > > >> the > > > >> > > > newest > > > >> > > > > surefire version [3], but dynamic tests become unavailable > from > > > >> pure > > > >> > > > > Maven and accordingly from CI Ignite (from IDE all is fine). > > > >> > > > > I can suggest leaving this type of tests on JUnit4 on the > current > > > >> > stage - > > > >> > > > > they are in the vast minority. > > > >> > > > > > > > >> > > > > Let me comment on your side notes. > > > >> > > > > > > > >> > > > > I am not against the stable and widely-used test library > usage. > > > >> All I > > > >> > > > want > > > >> > > > > to say that it is not necessary in case of the main testing > Ignite > > > >> > > > > framework (Junit) already provides the mentioned features. > > > >> > > > > > > > >> > > > > At the initial stage of improvements 3->4 I am planning to > remove > > > >> > > > > JUnit3TestLegacyAssert, JUnit3TestLegacySupport classes. I > guess > > > >> that > > > >> > > > > during this work > > > >> > > > > I will face with an issue that you are mentioned - turning > > > >> instance > > > >> > > > methods > > > >> > > > > to static. It is because of beforeTestsStarted and > > > >> afterTestsStarted > > > >> > > > > methods - I want to replace them by methods with BeforeAll, > > > >> AfterAll > > > >> > > > > annotations. But the point is that methods under such > annotations > > > >> > must be > > > >> > > > > static. Just now I am not sure about fully removing > > > >> > > > > GridCommonAbstractTest class, but the need for static > methods is a > > > >> > fact. > > > >> > > > > > > > >> > > > > [1] > > > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > >> > https://github.com/apache/ignite/blob/85ba3a88d661bb05bbb749bd1feaf60cd9099ddc/examples/src/test/java/org/apache/ignite/testsuites/IgniteExamplesSelfTestSuite.java#L59 > > > >> > > > > [2] > > > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > >> > https://cwiki.apache.org/confluence/display/IGNITE/IEP-30%3A+Migration+to+JUnit+5 > > > >> > > > > [3] https://github.com/junit-team/junit5/issues/1778 > > > >> > > > > > > > >> > > > > вс, 24 февр. 2019 г. в 10:15, Павлухин Иван < > vololo...@gmail.com > > > >> >: > > > >> > > > > > > > >> > > > > > Ivan, > > > >> > > > > > > > > >> > > > > > Indeed junit5 has a lot of powerful features which can > improve > > > >> > testing > > > >> > > > > > process. > > > >> > > > > > > > > >> > > > > > But first we should go through a migration process. There > are > > > >> > several > > > >> > > > > > items which looks quite challenging. > > > >> > > > > > 1. Test suites support. Correct me if I am missed it, but > I have > > > >> > not > > > >> > > > > > found a concept of test suites similar to junit3/4 ones. > CI in > > > >> > Ignite > > > >> > > > > > heavily depends on test suites. Is there an alternative in > > > >> junit5? > > > >> > > > > > 2. The majority of our tests extend GridAbstractTest > which in > > > >> fact > > > >> > is > > > >> > > > > > a core class in Ignite testing. Writing a test without > extending > > > >> > it is > > > >> > > > > > not a good idea. Currently it employs number of junit4 > concepts, > > > >> > e.g. > > > >> > > > > > test rules which as I saw are not supported in junit5. > So, it > > > >> > sounds > > > >> > > > > > that some changes in GridAbstractTest need to be done. > During > > > >> > > > > > migration from junit 3 to 4 GridAbstractTest used kind of > > > >> mimicry, > > > >> > it > > > >> > > > > > can be used as a base class for junit3 and junit4 tests > at the > > > >> same > > > >> > > > > > time. How can we address transitional period now? > > > >> > > > > > 3. Also we have bunch of tests using our home-brewed > > > >> > parametrization. > > > >> > > > > > You can find them by searching usages of > > > >> > > > > > ConfigVariationsTestSuiteBuilder. This part was rather > tricky > > > >> > during > > > >> > > > > > migration to junit4. > > > >> > > > > > > > > >> > > > > > Do we have a plan for all these items? > > > >> > > > > > ---- > > > >> > > > > > > > > >> > > > > > Couple of side notes. > > > >> > > > > > > > > >> > > > > > Regarding dependencies minimization. Actually, I think it > is > > > >> > important > > > >> > > > > > for junit itself as a library. Many libraries try to > minimize > > > >> > > > > > dependency. In Ignite we do so as well. But in my opinion > it is > > > >> not > > > >> > > > > > the case in context of libraries used during testing. If > we have > > > >> > > > > > useful, stable and widely-used test library which can > improve > > > >> our > > > >> > > > > > processes why should not we use it? > > > >> > > > > > > > > >> > > > > > Regarding removing leftovers left after junit 3->4 > migration. > > > >> > > > > > Actually, I think that GridAbstractTest and > > > >> GridCommonAbstractTest > > > >> > can > > > >> > > > > > be refactored in order to simplify further development and > > > >> > migration > > > >> > > > > > to new testing framework. For example, there are a lot of > > > >> instance > > > >> > > > > > methods which can be turned to static methods. Various > > > >> > start/stopGrid > > > >> > > > > > methods fall into this category. They can be extracted > into some > > > >> > > > > > utility class and imported statically. Perhaps, after > number of > > > >> > such > > > >> > > > > > refactoring we will be able to write tests without > extending > > > >> > > > > > GridCommonAbstractTest. > > > >> > > > > > > > > >> > > > > > пт, 22 февр. 2019 г. в 18:33, Ivan Fedotov < > ivanan...@gmail.com > > > >> >: > > > >> > > > > > > > > > >> > > > > > > Hi Ivan! > > > >> > > > > > > > > > >> > > > > > > Junit5 differs from JUnit4 not so strong as 4 from 3 > > > >> version. Of > > > >> > > > > course, > > > >> > > > > > > we can use AssertJ and other libraries, but it is more > > > >> > comfortable to > > > >> > > > > > > use functionality from the box. Moreover, the JUnit team > > > >> provides > > > >> > > > > strong > > > >> > > > > > > support for its products and it is the core JUnit > principle - > > > >> > > > minimize > > > >> > > > > > > third-party dependency [1]. > > > >> > > > > > > > > > >> > > > > > > According to Parameterized tests, it has several cons > in > > > >> JUnit4: > > > >> > > > > > > 1. Test classes use fields and constructors to define > > > >> > parameters, > > > >> > > > > which > > > >> > > > > > > make tests more verbose > > > >> > > > > > > 2. It requires a separate test class for each method > being > > > >> > tested. > > > >> > > > > > > In JUnit5 it has a simplified parameter syntax and > supports > > > >> > multiple > > > >> > > > > > > data-set source types, including CSV and annotation > > > >> > > > > > > > > > >> > > > > > > Impact on daily test development does not so differ > from > > > >> > development > > > >> > > > > on > > > >> > > > > > > JUnit4. We also can use annotations to mark methods as > tests, > > > >> but > > > >> > > > some > > > >> > > > > > main > > > >> > > > > > > annotations have > > > >> > > > > > > different names - you can see it in the ticket > description > > > >> [2]. > > > >> > You > > > >> > > > > have > > > >> > > > > > to > > > >> > > > > > > use those annotations and different import, but these > are > > > >> minor > > > >> > > > > changes. > > > >> > > > > > > We can change suites from static to dynamic tests [3], > but I > > > >> am > > > >> > not > > > >> > > > > sure > > > >> > > > > > > that it is necessary. If you have any arguments in > favor of > > > >> > dynamic > > > >> > > > > > tests, > > > >> > > > > > > I am ready to discuss them. > > > >> > > > > > > > > > >> > > > > > > Now I see that changes in GridAbstractTest are not > required. > > > >> > Only > > > >> > > > > > > improvements in JUnit 3->4 migration, which were given > in IEP. > > > >> > Other > > > >> > > > > > JUnit5 > > > >> > > > > > > features we can use with additional imports. The > problem can > > > >> > appear > > > >> > > > > with > > > >> > > > > > > dynamic tests because we can not launch static and > dynamic > > > >> under > > > >> > one > > > >> > > > > > > surefire version. I made a preliminary migration on > examples > > > >> > module, > > > >> > > > > you > > > >> > > > > > > can take a look on it [4], but now it is still in work. > > > >> > > > > > > > > > >> > > > > > > I tried to find some other JUnit5 features and added > them to > > > >> > IEP. If > > > >> > > > I > > > >> > > > > > miss > > > >> > > > > > > something, please, let me now, we will also take it into > > > >> account. > > > >> > > > > > > > > > >> > > > > > > [1] > > > >> https://github.com/junit-team/junit5/wiki/Core-Principles > > > >> > > > > > > [2] https://issues.apache.org/jira/browse/IGNITE-10958 > > > >> > > > > > > [3] https://www.baeldung.com/junit5-dynamic-tests > > > >> > > > > > > [4] https://github.com/apache/ignite/pull/5888 > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > чт, 21 февр. 2019 г. в 18:45, Павлухин Иван < > > > >> vololo...@gmail.com > > > >> > >: > > > >> > > > > > > > > > >> > > > > > > > Hi Ivan, > > > >> > > > > > > > > > > >> > > > > > > > Thank you for your efforts! > > > >> > > > > > > > > > > >> > > > > > > > I checked a section "Motivation" in IEP and I think > that we > > > >> > should > > > >> > > > > add > > > >> > > > > > > > more details there. You provided mostly examples of > more > > > >> > convenient > > > >> > > > > > > > assertions. But there are other options to deal with > it. > > > >> E.g. > > > >> > > > AssertJ > > > >> > > > > > > > library [1] (I think that we can consider it even > after > > > >> > migration > > > >> > > > to > > > >> > > > > > > > junit5). It would be great if we can describe some > junit5 > > > >> > features > > > >> > > > > > > > which can make our life simpler and there is no > alternative > > > >> in > > > >> > > > > junit4. > > > >> > > > > > > > E.g. we have the similar Parameterized concept in > junit4, > > > >> so it > > > >> > > > does > > > >> > > > > > > > not look as a big win here. > > > >> > > > > > > > > > > >> > > > > > > > Also, an impact on everyday development should be > estimated. > > > >> > As I > > > >> > > > > > > > know, junit5 has a compatibility layer which allows to > > > >> migrate > > > >> > from > > > >> > > > > > > > junit4 seamlessly. But as I understood you would like > to use > > > >> > new > > > >> > > > > > > > junit5 features. And we have well-known > GridAbstractTest > > > >> which > > > >> > > > > > > > historically was bound to junit3, now is bound to > junit4. > > > >> > Should we > > > >> > > > > > > > change it significantly for junit5? Should we change > other > > > >> > existing > > > >> > > > > > > > tests? Suites? > > > >> > > > > > > > > > > >> > > > > > > > Could you please address my concerns? > > > >> > > > > > > > > > > >> > > > > > > > Let's discuss pros and cons. I will be happy to help > there. > > > >> > > > > > > > > > > >> > > > > > > > [1] http://joel-costigliola.github.io/assertj/ > > > >> > > > > > > > > > > >> > > > > > > > чт, 21 февр. 2019 г. в 18:07, Ivan Fedotov < > > > >> > ivanan...@gmail.com>: > > > >> > > > > > > > > > > > >> > > > > > > > > Dmitriy, thank you, access is fine. > > > >> > > > > > > > > > > > >> > > > > > > > > I have created the corresponding IEP [1]. > > > >> > > > > > > > > > > > >> > > > > > > > > Now I am going to continue work on this. If > somebody has > > > >> any > > > >> > > > > > suggestions > > > >> > > > > > > > or > > > >> > > > > > > > > additions I am ready to discuss them. > > > >> > > > > > > > > > > > >> > > > > > > > > [1] > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > >> > https://cwiki.apache.org/confluence/display/IGNITE/IEP-30%3A+Migration+to+JUnit+5 > > > >> > > > > > > > > > > > >> > > > > > > > > чт, 21 февр. 2019 г. в 01:42, Dmitriy Pavlov < > > > >> > dpav...@apache.org > > > >> > > > >: > > > >> > > > > > > > > > > > >> > > > > > > > > > Done, please check access now. > > > >> > > > > > > > > > > > > >> > > > > > > > > > ср, 20 февр. 2019 г. в 21:49, Ivan Fedotov < > > > >> > > > ivanan...@gmail.com > > > >> > > > > >: > > > >> > > > > > > > > > > > > >> > > > > > > > > > > Dmitriy, thank you for the response. > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > My wiki username is "ivanan", the related > mailbox is > > > >> > > > > > > > ivanan...@gmail.com > > > >> > > > > > > > > > . > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > ср, 20 февр. 2019 г. в 18:38, Dmitriy Pavlov < > > > >> > > > > dpav...@apache.org > > > >> > > > > > >: > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > Hi Ivan, > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > Now admin service is unavailable (gives error > 503). > > > >> > I'll > > > >> > > > add > > > >> > > > > > rights > > > >> > > > > > > > > > once > > > >> > > > > > > > > > > it > > > >> > > > > > > > > > > > is up and running. > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > Could you share your wiki username? I can't > find any > > > >> > users > > > >> > > > > who > > > >> > > > > > > > signed > > > >> > > > > > > > > > up > > > >> > > > > > > > > > > in > > > >> > > > > > > > > > > > the wiki with any similar email/username > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > Sincerely, > > > >> > > > > > > > > > > > Dmitriy Pavlov > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > ср, 20 февр. 2019 г. в 18:26, Ivan Fedotov < > > > >> > > > > > ivanan...@gmail.com>: > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > Hi, Igniters. > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > I am planning to formalize migration to > JUnit5 and > > > >> > create > > > >> > > > > IEP > > > >> > > > > > > > which > > > >> > > > > > > > > > > will > > > >> > > > > > > > > > > > > include related issues. > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > I already started to work on one of the > issues [1] > > > >> > and > > > >> > > > > > created a > > > >> > > > > > > > > > draft > > > >> > > > > > > > > > > > for > > > >> > > > > > > > > > > > > the corresponding IEP [2]. > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > Please, give me rights for confluence to > create > > > >> IEP. > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > [1] > > > >> > https://issues.apache.org/jira/browse/IGNITE-10973 > > > >> > > > > > > > > > > > > [2] > > > >> > > > > > > > > > > >> > https://gist.github.com/1vanan/1f81319f1dc6d6ebca30c216fdd82759 > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > Sincerely, > > > >> > > > > > > > > > > > > Ivan Fedotov. > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > ivanan...@gmail.com > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > -- > > > >> > > > > > > > > > > Ivan Fedotov. > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > ivanan...@gmail.com > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > -- > > > >> > > > > > > > > Ivan Fedotov. > > > >> > > > > > > > > > > > >> > > > > > > > > ivanan...@gmail.com > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > -- > > > >> > > > > > > > Best regards, > > > >> > > > > > > > Ivan Pavlukhin > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > -- > > > >> > > > > > > Ivan Fedotov. > > > >> > > > > > > > > > >> > > > > > > ivanan...@gmail.com > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > -- > > > >> > > > > > Best regards, > > > >> > > > > > Ivan Pavlukhin > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > -- > > > >> > > > > Ivan Fedotov. > > > >> > > > > > > > >> > > > > ivanan...@gmail.com > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > > >> > > -- > > > >> > > Ivan Fedotov. > > > >> > > > > > >> > > ivanan...@gmail.com > > > >> > > > > >> > > > > >> > > > > >> > -- > > > >> > Best regards, > > > >> > Ivan Pavlukhin > > > >> > > > > >> > > > > > > > > > > > > -- > > > > Ivan Fedotov. > > > > > > > > ivanan...@gmail.com > > > > > > > > > > > > > -- > > > Ivan Fedotov. > > > > > > ivanan...@gmail.com > > > > > > > > -- > > Best regards, > > Ivan Pavlukhin > > > > -- > Best regards, > Ivan Pavlukhin > -- Ivan Fedotov. ivanan...@gmail.com