Почему TestNG жалуется на использование @QAFDataProvider - PullRequest
0 голосов
/ 24 февраля 2019
@QAFDataProvider(dataFile = "src/test/resources/data/logintestdata.csv")
@Test(testName="testLoginPage", description="Login Page landing validation", priority=1, groups={"SMOKE"})
public void testLoginPage(Map<String, Object> data) {       

    // QAF - Qmetry Automation Framework calls

      get("/"); // Check base url in src/test/resources/application.properies file

      verifyText("login.box.header", "Sign In");
      verifyLinkWithTextPresent("Or Sign Up");
      verifyPresent("login.input.username");
      verifyPresent("login.input.password");
      verifyPresent("login.button.submit");
}

[Ошибка] org.testng.TestNGException: Невозможно внедрить аннотированный метод @Test [testLoginPage] с [interface java.util.Map].Для получения дополнительной информации о внедрении собственных зависимостей, пожалуйста, обратитесь к http://testng.org/doc/documentation-main.html#native-depend ency-инъекция в org.testng.internal.Parameters.checkParameterTypes (Parameters.java:244) в org.testng.internal.Parameters.createParameters (Parameters.java): 172) в org.testng.internal.Parameters.createParameters (Parameters.java:458) в org.testng.internal.Parameters.handleParameters (Parameters.java:568) в org.testng.internal.Invoker.handleParameters (Invoker.Java: 1293) в org.testng.internal.Invoker.createParameters (Invoker.java:1020) в org.testng.internal.Invoker.invokeTestMethods (Invoker.java:1110) в org.testng.internal.TestMethodWorker.invokeTestMetho (TestMethoho (TestMethotoTestMethoho (TestMethoho (TestMethotoWet).java: 129) по адресу org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:112) по адресу java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) по адресу java.util.conecol.выполнить (ThreadPoolExecutor.java:624) на java.lang.Thread.run (Thread.java:748)

1 Ответ

0 голосов
/ 24 февраля 2019

Как вы уже заметили, ваш метод не работает с java.util.Map в качестве параметра.Вы пытались использовать вместо этого DataProvider?

Вот краткий пример:

@DataProvider(name = "data")
public static Object[][] dataProvider() {
    return new Object[][] { { "key1", "value1" }, { "key2", "value2" }};
}

@Test(dataProvider = "Authentication")
public void testLoginPage(String key, String value) {     
  //do something
}

Метод testLoginPage вызывается один раз для каждой пары значений ключей в вашем поставщике данных.Не уверен, что он работает и с java.util.Map.

...