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>