@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] 注入(inject) @Test 注释方法 [testLoginPage]。 有关 native 依赖项注入(inject)的更多信息,请参阅 http://testng.org/doc/documentation-main.html#native-depend ency注入(inject) 在 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)
最佳答案
正如您已经注意到的,您的方法不适用于 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。
关于java - 为什么 TestNG 提示使用 @QAFDataProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54852879/