The project I'm working on is currently using JUnit 4.10 and am trying to upgrade to 4.12 to get benefits from some features that's been introduced in the last 2 versions.
However, TestWatcher has changed and now is catching every exception thrown from any of its lifecycle methods (starting, finished, etc). This is causing some issues, as we have a watcher that is logging remotely, so if for some reason the server goes down, we want to be able to skip the test, rather than making it failed.
So far we have caught IOException and re-thrown it as AssumptionViolatedException, so the test would get skipped. Now, with the new watcher, the exception is caught, the test runs normally and at the end fails because the watcher had a non empty list of errors.
Is there any way around it? Should I just write my own rule?