public class TestOptimizer
extends java.lang.Object
Typically, this is to be done if your tests in are defined in a junit.framework.TestSuite.
optimize(java.util.List<T>)
method will take a list of Optimizables and return an optimized list of Optimizables.optimizeTestClasses(java.util.Collection<java.lang.Class>)
method is a convenience method for optimizing a list of Test Classes.Constructor and Description |
---|
TestOptimizer(OptimizationOptions options) |
TestOptimizer(java.lang.String initString,
java.io.File snapshotFile) |
Modifier and Type | Method and Description |
---|---|
<T extends Optimizable> |
optimize(java.util.List<T> optimizables)
Optimize a collection of any Optimizable.
|
java.util.List<Optimizable> |
optimizeObjects(java.util.List objectList)
Optimizes a collection of unknown objects.
|
java.util.Collection<java.lang.Class> |
optimizeTestClasses(java.util.Collection<java.lang.Class> testClasses)
Optimize a collection of Test classes.
|
public TestOptimizer(OptimizationOptions options)
public TestOptimizer(java.lang.String initString, java.io.File snapshotFile)
public java.util.Collection<java.lang.Class> optimizeTestClasses(java.util.Collection<java.lang.Class> testClasses)
testClasses
- classes to be optimizedpublic <T extends Optimizable> java.util.List<T> optimize(java.util.List<T> optimizables)
T
- Optimizableoptimizables
- a list of objects, denoting tests, to optimizepublic java.util.List<Optimizable> optimizeObjects(java.util.List objectList) throws java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
Optimizes a collection of unknown objects. It tries to call 'getName()' method on each element from
objectList
using reflections. It returns a List where each element is an Optimizable
which getName() method returns a value of corresponding objectList.get(x).getName()
.
This is a workaround for Clover-for-Grails plugin, where FileOptimizable class cannot implement Optimizable interface due to problems with dependency resolution in Grails via 'install-plugin' command. We're using Object and reflections to pass the necessary information.
objectList
- list of objects having the 'String getName()' method returning name of optimizable resourcejava.lang.NoSuchMethodException
- if getName() method does not existjava.lang.reflect.InvocationTargetException
- if getName() call failsjava.lang.IllegalAccessException
- if getName() call fails