TestNG запускает каждый метод и игнорирует включенные методы из 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 ответ

Попробуйте этот код, он работает

//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 - Тестовый класс

Другие вопросы по тегам