lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dawid Weiss (Commented) (JIRA)" <>
Subject [jira] [Commented] (LUCENE-3762) Upgrade JUnit to 4.10, refactor state-machine of detecting setUp/tearDown call chaining.
Date Thu, 09 Feb 2012 08:59:00 GMT


Dawid Weiss commented on LUCENE-3762:

There are functional differences between TestWatcher (before) and TestWatchman (current) --
assumptions are no longer propagated as failures and the code in LTC.intercept() no longer

    protected void failed(Throwable e, Description description) {
      // org.junit.internal.AssumptionViolatedException in older releases
      // org.junit.Assume.AssumptionViolatedException in recent ones
      if (e.getClass().getName().endsWith("AssumptionViolatedException")) {
        if (e.getCause() instanceof _TestIgnoredException)

I'll write tests to cover these and rewrite the interceptor explicitly as a @Rule so that
we don't rely on JUnit's implementation with regard as to what is considered what.

> Upgrade JUnit to 4.10, refactor state-machine of detecting setUp/tearDown call chaining.
> ----------------------------------------------------------------------------------------
>                 Key: LUCENE-3762
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Improvement
>            Reporter: Dawid Weiss
>            Assignee: Dawid Weiss
>            Priority: Trivial
>             Fix For: 3.6, 4.0
>         Attachments: LUCENE-3762.patch
> Both Lucene and Solr use JUnit 4.7. I suggest we move forward and upgrade to JUnit 4.10
which provides several infrastructural changes (serializable Description objects, class-level
rules, various tweaks). JUnit 4.10 also changes (or fixes, depends how you look at it) the
order in which @Before/@After hooks and @Rules are applied. This makes the old state-machine
in LuceneTestCase fail (because the order is changed).
> I rewrote the state machine and used a different, I think simpler, although Uwe may disagree
:), mechanism in which the hook methods setUp/ tearDown are still there, but they are empty
at the top level and serve only to detect whether subclasses chain super.setUp/tearDown properly
(if they override anything).
> In the long term, I would love to just get rid of public setup/teardown methods and make
them private (so that they cannot be overriden or even seen by subclasses) but this will require
changes to the runner itself.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message