当前位置: 首页 > 知识库问答 >
问题:

Junit在surefire中运行失败

贺立果
2023-03-14

我面临着另一个问题。我的项目中有5个测试类(junit),它们都能够进行参数化测试。我可以用eclipse单独测试这些类,那时它工作得很好。当我通过maven(sure fire)运行它们时,它们失败了。错误消息看起来像org。朱尼特。跑步者。参数化。ParametersMethodReturnedErrorType(参数化。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)

共有1个答案

姬捷
2023-03-14
ProjectTest.getBrowserDetails() must return an Iterable of arrays

你有你的理由。方法返回的列表不包含数组,但包含浏览器对象。

在JUnit 4.11之前,该方法的正确签名将是:

public static List<Browser[]> getBrowserDetails() 
 类似资料:
  • 问题内容: 我已经使用JUnit 4和spring-test库编写了一些JUnit测试。当我在Eclipse中运行测试时,可以正常运行并通过。但是,当我使用Maven运行它们(在构建过程中)时,它们无法给出与Spring相关的错误。我不确定是什么引起了问题,JUnit,Surefire或Spring。这是我的测试代码,spring配置以及从Maven获得的异常: PersonServiceTest

  • 它是可以配置surefire插件只运行一些测试并行和其他顺序? 也可以使用surefireforkCount来运行声明为jUnit Suite的并行测试吗?

  • 我有以下ant目标: 当我尝试从命令行运行它时,我得到以下输出: 测试在Eclipse Mars(4.5.2)中成功运行。有人知道为什么会发生这种情况,以及我如何让JUnit测试通过ant运行吗?我正在使用JUnit 4.11,并尝试了ant v1.9.3和v1.9.6(以上输出是从ant v1.9.6生成的)。 编辑 根据注释中的建议,我还使用Antv1.8.4进行了测试,但这对导致的崩溃没有任

  • 如果我使用,如下所示: 然后,当测试执行第一次开始时,所有的web驱动程序都填满了,但是它很快就开始删除并一次执行一个驱动程序。 所以我的问题是: null

  • 我正在用docker-compose测试我的应用程序,其中包含DynamoDB作为内部容器。docker-compose文件如下: 在构建代码时,我得到以下错误:

  • 我有一个用TestNG编写的大型测试套件,需要几个小时才能完成。 我想让maven/surefire创建一个新套件,它是第一个套件的副本,但只包含失败的测试,这个套件应该运行得更快。 有可能创建这样一个套件吗? 作为回退,如果有这样的报告,我可以从一个易于解析的测试报告中自己创建它。 非常感谢。