diff options
Diffstat (limited to 'org.eclipse.scout.rt.testing.shared/src/org/eclipse/scout/rt/testing/shared/runner/parameterized/ParameterizedTestRunnerExtension.java')
-rw-r--r-- | org.eclipse.scout.rt.testing.shared/src/org/eclipse/scout/rt/testing/shared/runner/parameterized/ParameterizedTestRunnerExtension.java | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/org.eclipse.scout.rt.testing.shared/src/org/eclipse/scout/rt/testing/shared/runner/parameterized/ParameterizedTestRunnerExtension.java b/org.eclipse.scout.rt.testing.shared/src/org/eclipse/scout/rt/testing/shared/runner/parameterized/ParameterizedTestRunnerExtension.java index e95cd6b1b2..e393ca6ba7 100644 --- a/org.eclipse.scout.rt.testing.shared/src/org/eclipse/scout/rt/testing/shared/runner/parameterized/ParameterizedTestRunnerExtension.java +++ b/org.eclipse.scout.rt.testing.shared/src/org/eclipse/scout/rt/testing/shared/runner/parameterized/ParameterizedTestRunnerExtension.java @@ -34,7 +34,8 @@ public class ParameterizedTestRunnerExtension { return testClass.getOnlyConstructor().newInstance(testParameter); } catch (Exception ex) { - throw new Exception("Constructor can not be invoked with the parameters " + testParameter.getName() + ")", ex); + String parameterName = (testParameter != null ? testParameter.getName() : null); + throw new Exception("Constructor can not be invoked with the parameter '" + parameterName + "')", ex); } } @@ -49,14 +50,38 @@ public class ParameterizedTestRunnerExtension { } } - public static List<FrameworkMethod> createParameterizedTestMethods(List<FrameworkMethod> originalTestMethods, int numberOfParameterEntries) { + /** + * Creates parameterized and non parameterized test methods. + */ + public static List<FrameworkMethod> createTestMethods(List<FrameworkMethod> originalTestMethods, int numberOfParameterEntries) { + List<FrameworkMethod> nonParameterizedTestMethods = new LinkedList<FrameworkMethod>(); + List<FrameworkMethod> originalTestMethodsToBeParameterized = new LinkedList<FrameworkMethod>(); + + for (FrameworkMethod test : originalTestMethods) { + if (test.getAnnotation(NonParameterized.class) != null) { + //test case annotated with @NonParameterized + nonParameterizedTestMethods.add(test); + } + else { + originalTestMethodsToBeParameterized.add(test); + } + } + + List<FrameworkMethod> result = new LinkedList<FrameworkMethod>(); + result.addAll(nonParameterizedTestMethods); + result.addAll(createParameterizedTestMethods(originalTestMethodsToBeParameterized, numberOfParameterEntries)); + return result; + } + + protected static List<FrameworkMethod> createParameterizedTestMethods(List<FrameworkMethod> originalTestMethods, int numberOfParameterEntries) { List<FrameworkMethod> result = new LinkedList<FrameworkMethod>(); - List<FrameworkMethod> testMethods = originalTestMethods; for (int paramsIndex = 0; paramsIndex < numberOfParameterEntries; paramsIndex++) { - for (FrameworkMethod test : testMethods) { - ParameterizedFrameworkMethod parameterizedTest = new ParameterizedFrameworkMethod(test, paramsIndex); - result.add(parameterizedTest); + for (FrameworkMethod test : originalTestMethods) { + if (test.getAnnotation(NonParameterized.class) == null) { + ParameterizedFrameworkMethod parameterizedTest = new ParameterizedFrameworkMethod(test, paramsIndex); + result.add(parameterizedTest); + } } } @@ -88,7 +113,7 @@ public class ParameterizedTestRunnerExtension { } } - public static Description describeChild(TestClass testClass, ParameterizedFrameworkMethod parameterizedMethod, String testName, List<IScoutTestParameter> parameterList) { + public static Description describeParameterizedChild(TestClass testClass, ParameterizedFrameworkMethod parameterizedMethod, String testName, List<IScoutTestParameter> parameterList) { return Description.createTestDescription(testClass.getJavaClass(), String.format("%s [%s]", testName, parameterList.get(parameterizedMethod.getParamIndex()).getName()), parameterizedMethod.getAnnotations()); } } |