Akshay Maldhure
Akshay Maldhure

Reputation: 857

How to specify a test with method name, class name and parameters in testng.xml?

I wish to have test level parameters in my testng.xml and below is the code present in my testng.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="My Test Suite" verbose="1">
   <parameter name="param1" value="value1" />
   <parameter name="param2" value="value2" />
   <listeners>
      <listener class-name="TestListener" />
   </listeners>
   <test name="Test1">
      <parameter name="param" value="value" />
      <classes>
         <class name="ClassContainingTest1" />
         <methods>
            <include name="test1" />
         </methods>
      </classes>
   </test>
   <test name="Test2">
      <parameter name="param" value="value" />
      <classes>
         <class name="ClassContainingTest2" />
         <methods>
            <include name="test2" />
         </methods>
      </classes>
   </test>
</suite>

But the XML editor highlights the classes tag in red. It seems something is wrong with my XML structure, but I'm unable to figure out the same.

Please help.

Upvotes: 0

Views: 4061

Answers (1)

Akshay Maldhure
Akshay Maldhure

Reputation: 857

The issue was with the methods tag not being inside the class tag.

Revising the XML code to below fixed the issue:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="My Test Suite" verbose="1">
   <parameter name="param1" value="value1" />
   <parameter name="param2" value="value2" />
   <listeners>
      <listener class-name="TestListener" />
   </listeners>
   <test name="Test1">
      <parameter name="param" value="value" />
      <classes>
         <class name="ClassContainingTest1">
            <methods>
               <include name="test1" />
            </methods>
         </class>
      </classes>
   </test>
   <test name="Test2">
      <parameter name="param" value="value" />
      <classes>
         <class name="ClassContainingTest2">
            <methods>
               <include name="test2" />
            </methods>
         </class>
      </classes>
   </test>
</suite>

Upvotes: 1

Related Questions