2
@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:无法使用 [interface java.util.Map] 注入 @Test 注释方法 [testLoginPage]。有关本地依赖注入的更多信息,请参阅http://testng.org/doc/documentation-main.html#native-depend 在 org.testng.internal.Parameters.createParameters(Parameters.java:172) 在 org.testng.internal.Parameters.checkParameterTypes(Parameters.java:244) 在 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.invokeTestMethods(TestMethodWorker.java:129) 在 org.testng.internal.TestMethodWorker.run( TestMethodWorker.java:112) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent。ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)

4

1 回答 1

0

正如您已经注意到的那样,您的方法不适用于 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 。

于 2019-02-24T15:18:16.377 回答