public class IsolatedTestRunner
extends org.junit.runners.BlockJUnit4ClassRunner
IsolatedClassPrefix
annotation.
Isolation is helpful when you do not want to pollute the application ClassLoader with some classes under test, or some dynamically loaded classes during a test. It could be used to reinitialize statics and drop out those dynamically loaded classes after the test.
To use this class, define a JUnit @RunWith
annotation on your test class and also
add a IsolatedClassPrefix
annotation to define the list of class prefixes that should
be isolated from the rest of your tests.
For example:
@RunWith(IsolatedTestRunner)
@IsolatedClassPrefix("org.xwiki.mypackage")
public class MyPackageTest
{
@Test
public void someTest() throws Exception
{
...
}
...
}
The prefixes should at least include a prefix that match your test class, else the initialization will fail,
since your test would not be run in isolation properly.
If you are mocking some of your isolated classes with Mockito in different tests (either isolated or not), you
will need to disable the class cache used by Mockito to avoid ClassCastException during mocking. You can disable
the cache by adding the following class to your test Jar:
package org.mockito.configuration;
public class MockitoConfiguration extends DefaultMockitoConfiguration
{
@Override
public boolean enableClassCache()
{
return false;
}
}
Constructor and Description |
---|
IsolatedTestRunner(Class<?> clazz)
Creates a BlockJUnit4ClassRunner to run
clazz . |
collectInitializationErrors, computeTestMethods, createTest, describeChild, getChildren, getTestRules, isIgnored, methodBlock, methodInvoker, possiblyExpectingExceptions, rules, runChild, testName, validateConstructor, validateFields, validateInstanceMethods, validateNoNonStaticInnerClass, validateOnlyOneConstructor, validateTestMethods, validateZeroArgConstructor, withAfters, withBefores, withPotentialTimeout
public IsolatedTestRunner(Class<?> clazz) throws org.junit.runners.model.InitializationError
clazz
.clazz
- the test class to be run in isolationorg.junit.runners.model.InitializationError
- if the test class is malformed.Copyright © 2004–2017 XWiki. All rights reserved.