我正在尝试使用TestNG运行以下代码,
package Framework;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
public class XMLtestng {
WebDriver d;
@Test
@Parameters({"fname"})
public void reg(String fname) throws InterruptedException {
d.findElement(By.linkText("REGISTER")).click();
d.findElement(By.name("firstName")).sendKeys(fname);
d.findElement(By.name("register")).click();
Thread.sleep(3000);
}
@BeforeClass
public void beforeClass() {
d = new FirefoxDriver();
d.manage().window().maximize();
d.get("http://newtours.demoaut.com/");
}
@AfterClass
public void afterClass() {
d.close();
}
}
这是相应的xml文件,
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
<test name="reg">
<Parameter name="fname" value="Rachel"/>
<classes>
<class name="Framework.XMLtestng"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
当我将我的xml文件作为TestNg套件运行时,只打开并关闭网站的网址。未执行要执行的操作(键入用于注册的名字)。这是在控制台中打印的消息,
Suite
Total tests run: 1, Failures: 0, Skips: 1
===============================================
任何人都可以帮我解决这个问题。 提前谢谢。
答案 0 :(得分:0)
您的测试被跳过,因为您没有提供预期参数,并且未将其声明为@Optionnal
。
问题是您使用的是<Parameter...
而不是<parameter...
。
使用DTD验证您的文件:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">