TestNG参数缺失错误

时间:2014-05-13 19:46:24

标签: java testng

我有以下问题,当我运行一个testng套件时,我收到以下错误:

“方法testMethod上的@test需要参数'paramName',但没有标记为@OPtional o或已定义”。这里一切正确的问题是我试图执行的代码的一部分:

  <test name = "Test name">
    <parameter name="model" value="bank"/>
    <parameter name="module" value="buyer"/>
    <parameter name="testName" value="testname" />
    <classes>           
        <class name="com.company.test.cases.example">
            <methods>
                <include name = "testMethod">
                    <parameter name="testLinkName" value="NAme on testlink to report to."/>
                </include>
            </methods>
        </class>
    </classes>
</test> 


@Parameters({"model", "module", "testName", "testLinkName"})
@Test
public void testMethod(String model, String module, String testName, String testLinkName) throws Exception {
    homePage = new HomePage(getDriver());
    homePage.navigateToBank();
    securityPage = new BankSecurity(this);
    securityPage.validateBankUI();
    assertTest(securityPage);
}

如果是这个测试,则从基础测试扩展,该测试在测试之前调用了以下方法

   @Parameters({"model", "module", "testName", "testLinkName"})
@BeforeMethod
public void beforeTest(String model, String module, String testName, String testLinkName)
{
    this.subModel=model;
    this.moduleName = module;
    this.testName = testName;
    this.testLinkName = testLinkName;
}

我不包括驱动程序是否已实例化。 如果有人知道会发生什么。

1 个答案:

答案 0 :(得分:2)

我能够成功访问参数。尝试在methods标签中移出参数。

<test name="OfferTests" >
    <parameter name="and" value="1"></parameter>
    <classes>
       <class name="com.nv.tests" >
        <methods>
            <parameter name="abc" value="def"></parameter>
            <include name="test1"></include>
        </methods>
       </class> 
    </classes>
  </test>

测试方法是

@Parameters({"and","abc"})
    @Test
    public void test1(String b, String a){
        System.out.println(b+a);
    }