Avinash Verma
Avinash Verma

Reputation: 37

TestNG: unable to provide class level parameter

I want to provide class level parameter in testng.xml.

Please can someone suggest if that is possible (or possible workaround). I am currently getting below error in doing so:

"The content of element type "classes" must match "(class*,parameter*)"

<classes> 
<parameter name ="P1" value="V1"/> 
<class name="someclass1" /> 
<parameter name ="P1" value="V2"/> 
<class name="someclass2" /> 
</classes>

Upvotes: 1

Views: 2251

Answers (1)

juherr
juherr

Reputation: 5740

From the documentation:

Parameters are scoped. In testng.xml, you can declare them either under a <suite> tag or under <test>.

At the opposite, the DTD allows parameters on <classes> node but the parser is complaining because you don't respect the order of nodes.

BTW, it is not possible to have a specific value for each class in the same <test> node. In other words, you will have to make many <test> nodes:

<suite>
  <test>
    <classes> 
      <class name="someclass1"/> 
      <parameter name="P1" value="V1"/> 
    </classes>
  </test>
  <test>
    <classes> 
      <class name="someclass2"/> 
      <parameter name="P1" value="V2"/> 
    </classes>
  </test>
</suite>

Upvotes: 3

Related Questions