我有以下问题,当我运行一个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;
}
我不包括驱动程序是否已实例化。 如果有人知道会发生什么。
答案 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);
}