Junit run failed in surefire

187 Views Asked by At

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)
1

There are 1 best solutions below

4
On
ProjectTest.getBrowserDetails() must return an Iterable of arrays

You have your reason right there. The list your method returns does not contain Arrays but Browserobjects.

Up to JUnit 4.11 the correct signature of the method would be:

public static List<Browser[]> getBrowserDetails()