1
我創建了一個testng.xml文件來運行一套我的selenium webdriver測試。從eclipse中,我可以像testNG Suite一樣運行這個功能,但是從命令中可以看到以下錯誤。錯誤org.testng.TestNGException:無法注入@Test註釋方法main與類Ljava.lang.String;
的testng.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "testng.org/testng-1.0.dtd">;
<suite name="CATS Regression Suite">
<test name="WEB UI">
<parameter name="uid" value="TestAccount"/>
<parameter name="pid" value="Test123"/>
<classes>
<class name="VerifyLogin"/>
</classes>
</test>
<!-- Test -->
</suite>
<!-- Suite -->
命令運行:
java org.testng.TestNG testng.xml
異常跡:
[Error] org.testng.TestNGException:
Cannot inject @Test annotated Method [main] with [class [Ljava.lang.String;].
For more information on native dependency injection please refer to http://testng.org/doc/documentation-main.html#native-dependency-injection
at org.testng.internal.Parameters.checkParameterTypes(Parameters.java:244)
at org.testng.internal.Parameters.createParameters(Parameters.java:172)
at org.testng.internal.Parameters.createParameters(Parameters.java:458)
at org.testng.internal.Parameters.handleParameters(Parameters.java:568)
at org.testng.internal.Invoker.handleParameters(Invoker.java:1293)
at org.testng.internal.Invoker.createParameters(Invoker.java:1020)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1110)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:756)
at org.testng.TestRunner.run(TestRunner.java:610)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
at org.testng.SuiteRunner.run(SuiteRunner.java:289)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
at org.testng.TestNG.runSuites(TestNG.java:1133)
at org.testng.TestNG.run(TestNG.java:1104)
at org.testng.TestNG.privateMain(TestNG.java:1434)
at org.testng.TestNG.main(TestNG.java:1403)
代碼(如圖中的評論共享)
public class VerifyLogin extends TestBase {
@Parameters({"uid","pid"})
@Test
public void verifyLogin(String uid, String pid) throws IOException, Exception {
String userName = uid;
String passWord = pid;
// new instance
ExtentReports extent = new ExtentReports("C:\\Users\\AdvancedReport.html", true);
//starting test
ExtentTest test = extent.startTest("Login Test", "Regression");
// log step
test.log(LogStatus.PASS, "Browser Running");
TestBase login=new TestBase();
login.testLogin(userName, passWord);
}
}
是什麼測試方法的簽名是什麼樣子?它看起來像期待一個字符串,而沒有得到它。 – mrfreester
<?xml version =「1.0」encoding =「UTF-8」?> <!DOCTYPE suite SYSTEM「http://testng.org/testng-1.0.dtd」> <測試名稱= 「WEB UI」> <參數名稱= 「UID」 值= 「TestAccount」/> \t <參數名稱= 「PID」 值= 「Test123」/> \t \t <類名= 「VerifyLogin」/> < - > –
CJ2K
您沒有使用命令行和蝕之間的相同TestNG的版本! - 套件。覈實。 – juherr