@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.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.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)
答案 0 :(得分: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。