Reputation: 1087
I am facing a different problem.I have 5 test classes(junit) in my project and all of them are capable of parameterized testing.I can individually test these classes with eclipse at that time it works perfectly. When I run them through maven(sure fire),they failed. Error message looks like org.junit.runners.Parameterized.parametersMethodReturnedWrongType(Parameterized.java:340). Please help.
code snippet:
@Parameters
public static List<Browser> getBrowserDetails() {
ConfigReader reader = new ConfigReader();
return reader.getParameter(ProjectTest.class.getCanonicalName());
}
stacktrace:
java.lang.Exception: com.sun.pinna.tests.ProjectTest.getBrowserDetails() must return an Iterable of arrays.
at org.junit.runners.Parameterized.parametersMethodReturnedWrongType(Parameterized.java:340)
at org.junit.runners.Parameterized.allParameters(Parameterized.java:286)
at org.junit.runners.Parameterized.<init>(Parameterized.java:248)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:250)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
Upvotes: 1
Views: 181
Reputation: 993
ProjectTest.getBrowserDetails() must return an Iterable of arrays
You have your reason right there. The list your method returns does not contain Arrays but Browser
objects.
Up to JUnit 4.11 the correct signature of the method would be:
public static List<Browser[]> getBrowserDetails()
Upvotes: 3