Search code examples
javaseleniumtestngtestng.xml

How to run test using testng by only providing partial class name?


Suppose my java file name is SeleniumID1Test.java, so currently my testng xml file is like this

<test name="Selenium Test Name">
    <classes>           
        <class name="selenium.SeleniumID1Test"/>
   </classes>   
</test>

But I want it to do by partial class name, for example like if I provide name=ID1 it runs SeleniumID1Test. Is there any way possible? Please suggest, Thanks.


Solution

  • I think a good solution for your problem can be using group like this:

    import org.testng.Assert;
    import org.testng.annotations.Test;
    
    public class GroupTestExample {
       String message = ".com";
       MessageUtil messageUtil = new MessageUtil(message);
    
       @Test(groups = { "functest", "checkintest" })
       public void testPrintMessage() {
          System.out.println("Inside testPrintMessage()");
          message = ".com";
          Assert.assertEquals(message, messageUtil.printMessage());
       }
    
    
       @Test(groups = { "checkintest" })
       public void testSalutationMessage() {
          System.out.println("Inside testSalutationMessage()");
          message = "tutorialspoint" + ".com";
          Assert.assertEquals(message, messageUtil.salutationMessage());
       }
    
    
       @Test(groups = { "functest" })
       public void testingExitMessage() {
          System.out.println("Inside testExitMessage()");
          message = "www." + "tutorialspoint"+".com";
          Assert.assertEquals(message, messageUtil.exitMessage());
       }  
    }
    

    and your xml file would be like this:

    <?xml version = "1.0" encoding = "UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    
    <suite name = "Suite1">
       <test name = "test1">
    
          <groups>
             <run>
                <include name = "functest" />
             </run>
          </groups>
    
          <classes>
             <class name = "GroupTestExample" />
          </classes>
    
       </test>
    </suite>