This task involves creating a smoke test for each portlet and webapp to avoid unnecessary testing. Executing all the tests during catastrophic application failure takes a long time and provides a lot of noise and very little useful signal. It would be better to run a smoke test that alerts the tester of a catastrophic problem.
One potential implementation of a smoke test (using the JUnit API) would be to run a test in an @BeforeClass method (after setup has occurred). If the test passes, do nothing. If the test fails, set a flag (consider concurrency and extending classes) and throw an AssertionError("Smoke test failed.") (or assert something with that same message). Then in an @Before method in IntegrationTesterBase, Assume.assumeTrue(smokeTestPassed) in order to skip all tests if the smoke test fails.