无法读取testng.xml文件中声明的参数

时间:2016-01-23 02:35:11

标签: java xml selenium testng

代码:

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中读取参数

2 个答案:

答案 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。