Class AbstractTestSuiteChunkerImpl<T>
java.lang.Object
org.powermock.tests.utils.impl.AbstractCommonTestSuiteChunkerImpl
org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl<T>
- All Implemented Interfaces:
RunnerTestSuiteChunker, TestSuiteChunker
- Direct Known Subclasses:
JUnit4TestSuiteChunkerImpl
public abstract class AbstractTestSuiteChunkerImpl<T>
extends AbstractCommonTestSuiteChunkerImpl
implements RunnerTestSuiteChunker
Abstract base class for test suite chunking, i.e. a suite is chunked into
several smaller pieces which are ran with different classloaders. A chunk is
defined by the
PrepareForTest annotation and whichever test-method
annotation the actual implementation-class specifies by overriding the
method AbstractCommonTestSuiteChunkerImpl.testMethodAnnotation(). This to make sure that you
can byte-code manipulate classes in tests without impacting on other tests.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intFields inherited from class AbstractCommonTestSuiteChunkerImpl
DEFAULT_TEST_LISTENERS_SIZE, INTERNAL_INDEX_NOT_FOUND, NOT_INITIALIZED, testAtDelegateMapper, testClasses -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractTestSuiteChunkerImpl(Class<?> testClass) protectedAbstractTestSuiteChunkerImpl(Class<?>... testClasses) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract TcreateDelegatorFromClassloader(ClassLoader classLoader, Class<?> testClass, List<Method> methodsToTest) final voidcreateTestDelegators(Class<?> testClass, List<TestChunk> chunks) Create the test delegators needed for a whole class.intgetDelegatorIndex(int testIndex) Get the junit runner delegate that handles the test at indextestIndex.intgetInternalTestIndex(int originalTestIndex) Get the internal test index for a junit runner delegate based on the "real" original test index.protected ObjectgetPowerMockTestListenersLoadedByASpecificClassLoader(Class<?> clazz, ClassLoader classLoader) protected Class<?>[]Methods inherited from class AbstractCommonTestSuiteChunkerImpl
getChunkSize, getTestChunk, getTestChunks, getTestChunksEntries, testMethodAnnotationMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface RunnerTestSuiteChunker
getTestCountMethods inherited from interface TestSuiteChunker
getChunkSize, getTestChunk, getTestChunks, getTestChunksEntries, shouldExecuteTestForMethod
-
Field Details
-
delegatesCreatedForTheseClasses
-
delegates
-
testCount
protected volatile int testCount
-
-
Constructor Details
-
AbstractTestSuiteChunkerImpl
-
AbstractTestSuiteChunkerImpl
-
-
Method Details
-
getPowerMockTestListenersLoadedByASpecificClassLoader
protected Object getPowerMockTestListenersLoadedByASpecificClassLoader(Class<?> clazz, ClassLoader classLoader) -
createTestDelegators
Description copied from interface:RunnerTestSuiteChunkerCreate the test delegators needed for a whole class.- Specified by:
createTestDelegatorsin interfaceRunnerTestSuiteChunker- Throws:
Exception
-
createDelegatorFromClassloader
-
getInternalTestIndex
public int getInternalTestIndex(int originalTestIndex) Get the internal test index for a junit runner delegate based on the "real" original test index. For example, the test may need to run a single test, for example the test with index 3. However since PowerMock may have chunked the test suite to use many classloaders and junit delegators the index (3) must be mapped to an internal representation for the specific junit runner delegate. This is what this method does. I.e. it will iterate through all junit runner delegates and see if they contain the test with index 3, in the internal index of this test delegator is returned.- Parameters:
originalTestIndex- The original test index as seen by the test runner.- Returns:
- The internal test index as seen by PowerMock or
-1if no index was found.
-
getDelegatorIndex
public int getDelegatorIndex(int testIndex) Get the junit runner delegate that handles the test at indextestIndex. Throws aRuntimeExceptionif a delegator is not found for the specific test index.- Parameters:
testIndex- The test index that a delegator should hold.- Returns:
- The index for of the junit runner delegate as seen by JTestRack.
-
getTestClasses
-