2016-04-19 2 views
0

Я пытаюсь создать testng.xml программно. Я использую ниже код JavaTestNG - программирование программных тестов

public static createTestSuit(String testClass){ 
    XmlSuite suite = new XmlSuite(); 
    suite.setName("My Suite"); 
    XmlTest test = new XmlTest(suite); 
    test.setName("My Test"); 
    List<XmlClass> classes = new ArrayList<XmlClass>(); 
    classes.add(new XmlClass(testClass)); 
    test.setXmlClasses(classes) ; 
    List<XmlSuite> suites = new ArrayList<XmlSuite>(); 
    suites.add(suite); 
    TestNG tng = new TestNG(); 
    tng.setXmlSuites(suites); 
    tng.run(); 
} 

Класс «testClass» содержит несколько методов тестирования. Я не хочу запускать все эти методы. Как я могу указать только имена методов испытаний, которые я хочу работать в коде выше, так что этот метод должен выглядеть как

public static createTestSuit(String testClass, List<String> testCasesID){ 
     //code 
} 

Примечание: Мои методы испытаний в форме

@Test(testName="testCaseID") 
    public void test1(){ 
    } 

ответ

3

Используйте XmlInclude, чтобы включить только те методы тестирования, которые вы хотите.

XmlClass xmlClass = new XmlClass(""); 
List<XmlInclude> includeMethods = new ArrayList<>(); 
includeMethods.add(new XmlInclude("test1")); 
xmlClass.setIncludeMethods(includeMethods); 

Если список включенных методов не определен или определен пустым, тогда TestNG будет запускать все тесты в классе. В противном случае он будет запускать только включенные тесты по именам их методов.

+0

Этот код работает отлично, но есть ли способ указать «АСМАП» вместо имени метода с «includeMethods»? – stackoverflow

+0

@curious Я не уверен, имеет ли testNG эту функцию, так как нет никакой гарантии, что вы дадите все ваши тесты уникальным именам. Но вы всегда можете пройти сами классы, найти методы, которые вы хотите по их аннотации, и передать эти методы TestNG – SimY4

0

вы можете пропустить тест, используя аннотацию Enabled = ложный

@Test(testName="testCaseID" enabled="false") 
public void test1(){ 
    //code here.. 
} 
Смежные вопросы