2018-04-20 17:34 GMT+00:00 Nicolas Lalevée <[email protected]>:
> > > Le 20 avr. 2018 à 18:48, Gintautas Grigelionis <[email protected]> > a écrit : > > > > 2018-04-20 15:26 GMT+00:00 Nicolas Lalevée <[email protected] > <mailto:[email protected]>>: > > > >>> Le 20 avr. 2018 à 07:09, Gintautas Grigelionis < > [email protected]> a écrit : > >>> > >>> I am refactoring Ant JUnit tests with a goal to make them more > >>> "IDE-friendly". I found several tests that are implictly dependent on > >>> ant.home property being set. In these cases, the test should be > prevented > >>> from execution by adding an assumption; however, perhaps there might > be a > >>> suitable default, like basedir + "/bootstrap" or some other location > that > >>> might be suggested in, say, javadoc? > >> > >> Rather than being skipped, it would prefer that such tests fail. I would > >> assume that the test being skipped are only the tests that I cannot run, > >> like the one testing a special feature of Windows while I am on MacOS. > If > >> it is just about an incorrect configuration of my IDE, I would want to > be > >> clearly notified that I can do something to run the tests, rather than > >> silently skipping such tests. Because in the end I would want to run > such > >> tests. > > > > > > I think I was clear that assumptions are not silent; here's an example of > > assumptions from Ant build log > > > > Testsuite: org.apache.tools.ant.util.JavaEnvUtilsTest > > Tests run: 6, Failures: 0, Errors: 0, Skipped: 3, Time elapsed: 0,01 sec > > > > Testcase: java10IsDetectedProperly(org.apache.tools.ant.util. > JavaEnvUtilsTest):SKIPPED: > > got: <false>, expected: is <true> > > Testcase: testGetExecutableWindows(org.apache.tools.ant.util. > JavaEnvUtilsTest):SKIPPED: > > Test only runs on windows > > Testcase: testGetExecutableNetware(org.apache.tools.ant.util. > JavaEnvUtilsTest):SKIPPED: > > Test only runs on netware > > > > The first SKIPPED line is emitted by a messageless assumption > > > > assumeTrue("10".equals(System.getProperty("java. > specification.version"))); > > > > Now, I don't see a point why a system property "ant.home" should be > treated > > differently from a system property "java.specification.version ». > > The property ‘ant.home’ is about how the test runner is setup, which is > controlled by the end user. > The other one is about which jvm is running. The end user can certainly > change it, but he is then shooting himself in the foot. > > The ‘ant.home’ is not an unchangeable property like the jvm or the OS. > > > An > > assumption should inform you that the test won't run unless the property > is > > set, and that's what you wanted: a notification that you can (and must) > do > > something to run the test. > > I still need to make the distinction between the thing I cannot change to > make the test pass, like the OS, and the things that I can and should fix > in the config of my IDE. Fine, let's use assertions then. I suppose I should start with ModifiedSelectorTest which currently uses assumptions. Gintas
