代码:
package TestNG;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class DataProvider {
@Parameters("param1")
@Test
public void getParam(String MyName) {
System.out.println("Parameter param1 value is :" + MyName);
}
}
Testng.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestNG">
<test name="DataProvider">
<classes>
<class name="TestNG.DataProvider"/>
<parameter name="param1" value="10"/>
</classes>
</test>
</suite>
错误讯息:
SKIPPED: getParam
org.testng.TestNGException:
Parameter 'param1' is required by @Test on method getParam but has not been marked @Optional or defined
in C:\Users\Satish\AppData\Local\Temp\testng-eclipse--422714061\testng-customsuite.xml
at org.testng.internal.Parameters.createParameters(Parameters.java:154)
at org.testng.internal.Parameters.createParameters(Parameters.java:361)
at org.testng.internal.Parameters.handleParameters(Parameters.java:451)
at org.testng.internal.Invoker.handleParameters(Invoker.java:1276)
at org.testng.internal.Invoker.createParameters(Invoker.java:991)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1081)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
注意:testng.xml中的代码没有颜色编码。这可能是一些配置问题,无法从testng.xml中读取参数
答案 0 :(得分:0)
我尝试使用相同的代码,对我来说没有任何例外。你是怎么创建testng.xml文件的?如果您手动编写而不是它,请尝试以下方式
右键单击Eclipse中的src(或必需包)&gt;&gt;转到TestNG&gt;&gt;选择转换为TestNG&gt;&gt;单击Finish(您可以在此处提供套件名称并进行测试)
打开创建的testng.xml文件,将false放在并行“”“parallel =”false“”“”
现在运行testng.xml文件。我要求尽量避免使用DataProvider,TestNG等保留字来命名对话。
谢谢你, 穆拉利
答案 1 :(得分:0)
您需要将参数标记放在classes标记之外,可以放在测试标记中,也可以放在suite标记中。
确保您使用Run As运行testng.xml - &gt;套件选项或将testng xml作为项目属性中的模板xml。