【问题标题】:How to run test using testng by only providing partial class name?如何通过仅提供部分类名来使用 testng 运行测试?
【发布时间】:2020-03-04 19:01:01
【问题描述】:

假设我的java文件名是SeleniumID1Test.java,那么目前我的testng xml文件是这样的

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

但我希望它通过部分类名来完成,例如,如果我提供 name=ID1,它会运行 SeleniumID1Test。有什么办法可以吗?请推荐,谢谢。

【问题讨论】:

    标签: java selenium testng testng.xml


    【解决方案1】:

    我认为像这样使用 group 可以很好地解决您的问题:

    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());
       }  
    }
    

    你的 xml 文件会是这样的:

    <?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>
    

    【讨论】:

      【解决方案2】:

      这是不可能的,但您可以在测试类中包含/排除特定的测试方法:

      public class Test1{
          @Test
          public void test2() {
              System.out.println("printing test_2");
          }
      
          @Test
          public void test3() {
              System.out.println("printing test_3");
          }
      }
      

      XML:

          <test name="WebPackage">
              <classes>
                  <class name="test.Test1">
                      <methods>
                          <include name="test2"/>
                          <exclude name="test3"/>
                      </methods>
                  </class>
              </classes>
          </test>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-21
        • 1970-01-01
        • 2016-03-24
        • 2020-01-13
        相关资源
        最近更新 更多