参数'名称' @Test需要方法参数,但尚未标记为@Optional

时间:2015-09-18 18:04:59

标签: selenium-webdriver testng parameterized

这是我的selenium testng脚本和XML文件。我收到错误消息。请帮我解决这个问题

Err MSG:参数'名称' @Test需要方法参数,但尚未标记为@Optional

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class Sampleparameterized {

@Test
@Parameters("Name")
public void parametertest(String Name) {
System.out.println("Parameterized value is " +Name);
}
}

XML文件

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
<test name="Test">
<parameter name = "Name" value ="TOM"/>

<classes>
<class name="Testing.Sampleparameterized"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

5 个答案:

答案 0 :(得分:3)

只需从* .xml文件中运行testclass(右键单击* .xml - &gt; Run)。参数化测试无法直接运行。

答案 1 :(得分:0)

当您从eclipse作为Single TestNG测试运行时,可能会发生这种情况。 您可能想在TestNG @Optional parameter error.

上提及已经给出的答案

答案 2 :(得分:0)

当您尝试运行单个TestNg类而不是运行* .xml时,通常会出现此错误。您的参数在* .xml文件中设置,因此右键单击* .xml文件并运行为TestNg。确保您的TestNg类已正确映射到* .xml文件中(类名=&#34; com.test.WebServices&#34;)。这里WebServices.java是你的TestNg类。

答案 3 :(得分:0)

我面临同样的问题,通过以下步骤得到解决 -
1.在Project-&gt; Properties-&gt; TestNG-&gt;模板XML文件中设置您的xml文件 2.右键单击您的Java文件并选择Run As ...-&gt; TestNG Test(将使用模板)

答案 4 :(得分:0)

您需要添加以下内容,以便能够直接从测试类运行测试:@Optional(“ Name”)。

例如:

public void parametertest(@Optional("Name"),String Name) {
System.out.println("Parameterized value is " +Name);
}

对我来说很好!让我知道您的情况。