有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaTestNG运行每个方法,并忽略TestNG中包含的方法。xml

我创建了我的testng。xml编程,我想添加我想要运行的每个方法。我现在正在按以下方式进行:

XmlClass myClass = new XmlClass("test.login.LoginTest");
List<XmlInclude> includedMethods = new ArrayList<XmlInclude>();

for (int k = 0; k < 10; k++) {

  includedMethods.add(new XmlInclude("golog" + k));
}

myClass.setIncludedMethods(includedMethods);

根据我生成的testng。xml文件,似乎工作正常:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="11" verbose="11" name="Login Test" parallel="tests">
  <test name="1" group-by-instances="true">
    <classes>
      <class name="test.login.LoginTest">
        <methods>
          <include name="golog1"/>
          <include name="golog2"/>
          <include name="golog3"/>
          <include name="golog4"/>
          <include name="golog5"/>
          <include name="golog6"/>
          <include name="golog7"/>
          <include name="golog8"/>
          <include name="golog9"/>
        </methods>
      </class> <!-- test.login.LoginTest -->
    </classes>
  </test> <!-- 1 -->
</suite> <!-- Login Test -->

问题是,当我的代码在生成xml文件后执行时,每个@Test方法都会执行(这些方法也有完全不同的名称,如“gssig01”),尽管我没有包括它们

我的问题是,我是否必须在包含任何内容之前排除所有方法,或者我做错了什么

提前谢谢你


共 (1) 个答案

  1. # 1 楼答案

    试试这段代码,它很有效

    //Create a list which can contain the classes that you want to run including methods.
     List<XmlClass> myClasses = new ArrayList<XmlClass> ();
     XmlClass xmlclass = new XmlClass("stack1.LoginTest");
    
     List<XmlInclude> includedMethods = new ArrayList<XmlInclude>();
    
     for (int k = 0; k < 5; k++) {
    
       includedMethods.add(new XmlInclude("golog" + k));
     }
     xmlclass.setIncludedMethods(includedMethods);
    
     myClasses.add(xmlclass);
    

    这里是我有7个方法,只有4个运行的输出

    golog1test1
    golog2test2
    golog3test3
    golog4test4
    
    ===============================================
    StackOverFlow-Answer
    Total tests run: 4, Failures: 0, Skips: 0
    ===============================================
    

    如果要查看完整的类:
    RunTestNG.java-测试运行程序类
    LoginTest.java-测试类