2018-04-15 9:59 GMT+00:00 Stefan Bodewig <bode...@apache.org>:

> On 2018-04-15, Gintautas Grigelionis wrote:
>
> > Could you please explain what alternative approach does the "root"
> > property support
>
> It has been added with
> https://github.com/apache/ant/commit/71333195c9d57d80d1a44cd8362a64
> 1c62d5e214
> and the commit message states the main use case "running tests from
> an arbitrary directory". I don't recall the details, you may want to
> look at the mailing list archive of December 2004.
>
> My main point is this is something that has been working for more than
> thirteen years and I don't want to break it for people who rely on it
> just because it makes running the tests from an IDE slightly
> inconvenient (by having to remember something).
>

Thanks for the pointer. The idea with assumptions is that they serve as a
reminder
and the way they should be used is by splitting the tests so that they are
executed or not dependent
on assumptions -- which makes test cases simple. See RmicTest, for example.

Moreover, the refactoring of tests is not about extracting repetitive code
into "smart" methods;
it's about parameterizing -- which is another nice thing about JUnit 4 --
and we'll be getting to that.
Yet another thing is splitting the tests in order to extract the fixtures
which belong to @Before.

> _and_ add assumptions checks, since it causes nasty NPEs when not set?
>
> IIRC the fallback would be to use the current working directory instead
> of the "root" property if the former is not set. We can easily deal with
> this by using
>
> System.getProperty("root", System.getProperty("user.dir"))
>
> instead, right?
>

Rather,

System.getProperty("root",
buildRule.getProject().getBaseDir().getAbsolutePath())

but, yeah, good point. Have to check if it works everywhere, though.

> By the looks of it, JUnit 5 runner tests need an assumption check, too.
>
> Not sure why, but I may again be missing something.
>

Please have a look at TeamCity tests at JetBrains. They start with a clean
directory, then run
ant -Ddest=optional -f fetch.xml, then ./build.sh test, and fail with

java.lang.Exception: No runnable methods


Gintas

Reply via email to