我遇到以下问题,当我运行 testng 套件时,出现以下错误:
“参数'paramName'是方法testMethod上的@test所必需的,但尚未标记为@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;
}
我不包括驱动程序是否已实例化。 如果有人知道会发生什么。
最佳答案
我能够成功访问该参数。尝试将参数移出方法标记中。
<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);
}
关于java - TestNG 参数缺失错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23640262/