TestNG: ClassCastException при возврате Iterator в DataProvider в Eclipse - PullRequest
0 голосов
/ 28 апреля 2020

В моем тесте TestNG я использую DataProvider, который возвращает объект Iterator, но когда я запускаю тест, я получаю ошибку. Может кто-нибудь объяснить, почему это не так и что я должен сделать, чтобы это исправить?

Версия Eclipse:

Eclipse Java EE IDE for Web Developers.

Version: Oxygen.3a Release (4.7.3a)
Build id: 20180405-1200

Java Версия

java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

Поставщик данных

  @DataProvider(name = "SmokeTestData", parallel = true)
public Iterator<SmokeTestData> smokeTestData(ITestContext context) {
    String fileName = context.getCurrentXmlTest().getParameter("filename");
    int numberOfTests = SmokeTestData.getNumberOfTests(fileName, true);
    SmokeTestData[] testSuiteData = new SmokeTestData[numberOfTests];
    for (int i = 1; i <= numberOfTests; i++) {
        testSuiteData[i-1] = new SmokeTestData(fileName, i);
    }
    return (Stream.of(testSuiteData)).iterator();
}

Тест

 @Test(description = "Smoke Test", dataProvider = "SmokeTestData", groups =
        {"SmokeTest"})
@Description("Smoke Test")
@Severity(SeverityLevel.NORMAL)
public void smokeTest(SmokeTestData smokeTestData) {
    selectEnv(smokeTestData.getUrl());
    loginPage.get().smoketest(smokeTestData.getEnvironment(), smokeTestData.getEmail(), smokeTestData.getPassword());
    serviceAvailabilityPage.get().smoketest();
    referralRequestStatusPage.get().smoketest();
}

Данные

Environment,Url,Email,Password
DE,https://somedomain.com/index.php/login,user@somedomain.com,somePW!1
IN,https://somedomain.com/index.php/login,user@somedomain.com,somePW!1
NM,https://somedomain.com/index.php/login,user@somedomain.com,somePW!1
MI,https://somedomain.com/index.php/login,user@somedomain.com,somePW!1
NV,https://somedomain.com/index.php/login,user@somedomain.com,somePW!1
AK,https://somedomain.com/index.php/login,user@somedomain.com,somePW!1

Ошибка:

java.lang.ClassCastException: data.SmokeTestData cannot be cast to java.base/[Ljava.lang.Object;
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1102)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:844)

Спасибо за любую помощь заранее !!

1 Ответ

0 голосов
/ 29 апреля 2020

Я решил эту проблему, полностью удалив Eclipse, включая следующие папки и очистив тра sh.

  • ~ / .eclipse
  • ~ / Library / Caches / org.eclipse.platform.ide
  • ~ / Библиотека / Состояние сохраненного приложения / org.eclipse. platform.ide.savedState
  • ~ / Library / Preferences / org.eclipse.platform.ide.plist

А затем установил Eclipse IDE для Java Разработчики версии 2018-09 и Плагин TestNG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...