【问题标题】:TestNg: getting ArrayIndexOutOfBoundsException: 0 while executing test with mavenTestNg:使用 maven 执行测试时获取 ArrayIndexOutOfBoundsException:0
【发布时间】:2017-08-17 00:25:25
【问题描述】:

我最近(3-4 周)遇到了这个奇怪的问题,我在测试套件中的一项测试中得到“java.lang.ArrayIndexOutOfBoundsException:0”。 测试方法运行良好,直到失败,但出现以下异常:

java.lang.ArrayIndexOutOfBoundsException: 0
org.testng.internal.MethodInvocationHelper.invokeWithTimeoutWithNewExecutor(MethodInvocationHelper.java:289)
org.testng.internal.MethodInvocationHelper.invokeWithTimeout(MethodInvocationHelper.java:246)
org.testng.internal.Invoker.invokeMethod(Invoker.java:667)
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
org.testng.TestRunner.privateRun(TestRunner.java:744)
org.testng.TestRunner.run(TestRunner.java:602)
org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
org.testng.SuiteRunner.run(SuiteRunner.java:289)
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
org.testng.TestNG.runSuitesSequentially(TestNG.java:1297)
org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
org.testng.TestNG.runSuites(TestNG.java:1144)
org.testng.TestNG.run(TestNG.java:1115)
org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:283)
org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:75)
org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120)
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:386)
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:323)
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:143)

非常感谢任何帮助或指针。 仅当我进行“mvn 测试”时才会出现此问题。当我从 IDEA 本身运行它时,它运行良好。

谢谢

【问题讨论】:

  • 您应该更具体地了解失败的测试以及在测试失败之前对您的项目所做的更改。如果是集成测试,可能是由于环境污染。 IDEA 和 Maven 上的集成测试顺序可能不同,因此错误仅出现在 Maven 上。也尝试将发生的事情记录到测试中,以便您可以在之后进行调试,它将帮助您弄清楚。

标签: java maven testng


【解决方案1】:

请检查有问题的测试是否与超时有关。最近在 TestNG 中提交了一个与超时相关的问题(详细信息可以在 GITHUB-1493 中找到),我已修复。

您共享的堆栈跟踪仅指向我这个问题。

如果它与此相关,那么恐怕没有解决方法,只能开始使用快照版本并开始使用 TestNG v.6.13 或更高版本(当它发布时)或暂时排除有问题的特定测试(再次直到包含修复的 TestNG 6.13 发布)。

【讨论】:

  • 感谢克里希南!我会再试一次,并会向您更新我的发现感谢您的快速响应。
【解决方案2】:

我自己在谷歌上搜索过这个问题(我正在运行 TestNG v6.11),当我阅读上面 Krishnan Mahadevan 的评论时,我尝试迁移到 6.10。没有给我造成任何问题,现在@Test timeOut 抛出ThreadTimeoutException 而不是ArrayIndexOutOfBoundsException。以防万一您想尝试一下。

【讨论】:

    【解决方案3】:

    我使用的是 testng 6.11 版,在配置超时时遇到了同样的问题。

    @Test(timeOut=1000)
    

    升级到 6.13.1 并且问题消失了,我得到了预期的 ThreadTimeoutException

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 2019-05-21
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 2021-10-22
      相关资源
      最近更新 更多