Я столкнулся с другой проблемой. В моем проекте есть 5 тестовых классов (junit), и все они способны к параметризованному тестированию. Я могу индивидуально протестировать эти классы с помощью eclipse, в то время как он отлично работает. Когда я запускаю их через maven (верный огонь), они потерпели неудачу. Сообщение об ошибке выглядит так: org.junit.runners.Parameterized.parametersMethodReturnedWrongType(Parameterized.java:340). Пожалуйста помоги.
фрагмент кода:
@Parameters
public static List<Browser> getBrowserDetails() {
ConfigReader reader = new ConfigReader();
return reader.getParameter(ProjectTest.class.getCanonicalName());
}
трассировки стека:
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)
reader.getParameter()
возвращал значение null. Я не думаю, что это хороший дизайн, чтобы изменить то, что для модульного тестирования в зависимости от внешнего файла - должно ли оно работать или не должно? И чтение конфигурации, вероятно, должно иметь собственный модульный тест, чтобы сказать вам, работает ли он. - person Deltharis   schedule 05.06.2015