Java 使用诸如@parameters或@dataprovider之类的TestNG符号。。。每次它都跳过该方法
每当我使用TESTNG注释@dataprovider或@Parameters时,它都会跳过该方法。下面提到了我的代码。 在这里输入代码Java 使用诸如@parameters或@dataprovider之类的TestNG符号。。。每次它都跳过该方法,java,xml,selenium,testng,Java,Xml,Selenium,Testng,每当我使用TESTNG注释@dataprovider或@Parameters时,它都会跳过该方法。下面提到了我的代码。 在这里输入代码 package crossbrowser; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.f
package crossbrowser;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class CrossTest
{
WebDriver driver;
@Test
@Parameters("browser")
public void crosstest1(String BrowserName)
{
if(BrowserName.equalsIgnoreCase("firefox"))
{
driver=new FirefoxDriver();
}
String baseUrl = "http://stackoverflow.com/questions/ask";
driver.get(baseUrl);
System.out.print("hello")
}
}
每次运行此代码时,我都会遇到此错误
SKIPPED: crosstest1
org.testng.TestNGException:
Parameter 'browser' is required by @Test on method crosstest1 but has not been marked @Optional or defined
@DataProvider也存在同样的问题
上面代码的XML文件是
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="Test">
<parameter name="browser" value="firefox"/>
<classes>
<class name="crossbrowser.CrossTest"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
看到关闭标记下面粘贴的XML文件写了两次
</test>
如果它不是粘贴问题,那么它应该是testng.xml文件中的问题,以便正确更新它
谢谢,,
Murali看到结束标记下面粘贴的XML文件写了两次
</test>
如果它不是粘贴问题,那么它应该是testng.xml文件中的问题,以便正确更新它
谢谢,,
Murali要与@parameters一起使用的xml文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" verbose="1">
<test name="Test">
<parameter name="browser" value="chrome"/>
<classes>
<class name="crossbrowser.CrossTest" />
</classes>
</test>
</suite>
要与@parameters一起使用的xml文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" verbose="1">
<test name="Test">
<parameter name="browser" value="chrome"/>
<classes>
<class name="crossbrowser.CrossTest" />
</classes>
</test>
</suite>
在你遇到问题之前,先抬起头来。不能像@test那样将参数从xml文件传递到数据提供程序中。您将需要执行以下操作
public String myTestDataProvider(ITestContext context) throws Exception{
String browser = context.getCurrentXmlTest().getParameter("browser");
//Do Something
return browser;
}
在你遇到问题之前,先抬起头来。不能像@test那样将参数从xml文件传递到数据提供程序中。您将需要执行以下操作
public String myTestDataProvider(ITestContext context) throws Exception{
String browser = context.getCurrentXmlTest().getParameter("browser");
//Do Something
return browser;
}
这是一个粘贴错误。。谢谢,这是一个粘贴错误。。感谢uMethod public java.lang.String crossbrowser.CrossTest.myTestDataProvider(org.testng.ITestContext)抛出java.lang.Exception有一个@Test注释,但也有一个返回值:忽略它。用于修复this@ArohaTech你能把你的代码更新到你现在拥有的吗?我的示例只是一个粗略的指南。方法public java.lang.String crossbrowser.CrossTest.myTestDataProvider(org.testng.ITestContext)抛出java.lang.Exception有一个@Test注释,但也有一个返回值:忽略它。用于修复this@ArohaTech你能把你的代码更新到你现在拥有的吗?我的例子只是一个粗略的指南。