Ошибка при выполнении сценариев Selenium с использованием аннотации @Factory TestNG - PullRequest
0 голосов
/ 29 марта 2019

Я занимаюсь автоматизацией с помощью Selenium Webdriver. Я использую TestNG для этого. FactoryMethod выдает ошибку прилагается.
Пожалуйста помоги мне с этим. Я уже задавал вопрос о том же самом ранее, но не нашел это полезным для меня.
Ниже приведена ошибка, которую я получаю.

Exception in thread "main" org.testng.TestNGException: 
The factory method class automation.actions.test.P2PPortalRegistrationActionTest.createInstances() threw an exception
    at org.testng.internal.FactoryMethod.invoke(FactoryMethod.java:121)
    at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:158)
    at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:40)
    at org.testng.TestRunner.initMethods(TestRunner.java:401)

Во время отладки кода я обнаружил, что в этом блоке перехвата возникает исключение com.getDeclaringClass (): -

catch (Throwable t) {
      ConstructorOrMethod com = getConstructorOrMethod();
      throw new TestNGException("The factory method "
          + com.getDeclaringClass() + "." + com.getName()
          + "() threw an exception", t);
    }

Код, где присутствует аннотация @Factory: - В этой строке ( P2PPortalRegistrationActionTest test = новый P2PPortalRegistrationActionTest (recordData); ) кода (ниже) управление переходит непосредственно к вышеуказанному блоку перехвата и выдает указанную ошибку.

@Factory 
 public static Object[] createInstances(ITestContext context) throws FileNotFoundException, IOException {

    // Get attachment path from parameters
    String parametersJson = context.getCurrentXmlTest().getParameter("P2PPortalRegistrationActionParams");
    ObjectMapper mapper = new ObjectMapper();
P2PPortalRegistrationActionParams params = mapper.readValue(parametersJson, P2PPortalRegistrationActionParams.class);

// Read excel data
Object[][] data = ExcelFileReader.getExcelData(params.getAttachmentPath());
System.out.println("--Data length is---" +data);

// Created instances of Test class for each record of Test Data
    List<P2PPortalRegistrationActionTest> listTestClassInstances = new ArrayList<P2PPortalRegistrationActionTest>();
for (int i = 0; i < data.length; i++) {
        @SuppressWarnings("unchecked")
    HashMap<String, String> recordData = (HashMap<String, String>) data[i][0];
        System.out.println("Record Data---"+recordData);
    P2PPortalRegistrationActionTest test = new P2PPortalRegistrationActionTest(recordData);
        System.out.println("test after setting record data"+test);
        test.setTestInstanceExecutionOrder(i + 1);
    listTestClassInstances.add(i, test);
    }

return listTestClassInstances.toArray();
} 

Пожалуйста, помогите мне решить эту проблему. Я уже прошел все ответы на вопросы, связанные с этим здесь, но не нашел это полезным.

Заранее спасибо

...