Anoop M Nair
Anoop M Nair

Reputation: 1087

Junit run failed in surefire

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

Answers (1)

Steven Pessall
Steven Pessall

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 Browserobjects.

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

public static List<Browser[]> getBrowserDetails() 

Upvotes: 3

Related Questions