Возникли проблемы с исключением тестов из TestNG

#java #methods #testng

#java #методы #testng

Вопрос:

У меня есть следующий класс Java TestNG:

 public class TestSequence {

    @BeforeTest
    public void initialize() {
        System.out.println("Inside initialize...............");
    }

    @Test(groups = { "group1", "group2" })
    public void commonCase() throws Exception {
        System.out.println("Inside commonCase...............");
    }

    @Test(groups = { "group1"}, dependsOnMethods = { "commonCase" })
    public void group1A() throws Exception {
        System.out.println("Inside group1A...............");
    }

    @Test(groups = { "group1"}, dependsOnMethods = { "group1A" })
    public void group1B() throws Exception {
        System.out.println("Inside group1B...............");
    }

    @Test(groups = { "group1"}, dependsOnMethods = { "group1B" })
    public void group1C() throws Exception {
        System.out.println("Inside group1C...............");
    }

    @Test(groups = { "group1"}, dependsOnMethods = { "group1C" })
    public void group1D() throws Exception {
        System.out.println("Inside group1D...............");
    }

    @Test(groups = { "group2"}, dependsOnMethods = { "commonCase" })
    public void group2A() throws Exception {
        System.out.println("Inside group2A...............");
    }

    @Test(groups = { "group2"}, dependsOnMethods = { "group2A" })
    public void group2B() throws Exception {
        System.out.println("Inside group2B...............");
    }

    @Test(groups = { "group2"}, dependsOnMethods = { "group2B" })
    public void group2C() throws Exception {
        System.out.println("Inside group2C...............");
    }

    @Test(groups = { "group2"}, dependsOnMethods = { "group2C" })
    public void group2D() throws Exception {
        System.out.println("Inside group2D...............");
    }
}
  

Вот testng.xml что у меня есть:

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
  <test name="Test">
    <classes>
      <class name="TestSequence">
        <methods>
            <include name="group1*"/>
            <exclude name="group2*"/>
        </methods>
      </class>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->
  

Я запускаю автоматизацию тестирования из командной строки следующим образом:

 java -cp C:TestProjectlib*;C:TestProjectbin org.testng.TestNG testng.xml
  

Результат, который я получаю, выглядит следующим образом:

 Inside initialize...............
Inside commonCase...............
Inside group1A...............
Inside group2A...............
Inside group1B...............
Inside group2B...............
Inside group1C...............
Inside group2C...............
Inside group1D...............
Inside group2D...............
  

Почему тестовые случаи group2 не исключены, несмотря на исключение, указанное в testng.xml ?

Большое спасибо за ваш ответ.

Ответ №1:

Как говорится в документации:

Примечание: TestNG использует регулярные выражения, а не подстановочные знаки. Имейте в виду разницу (например, «что угодно» соответствует «.» — точечная звезда — а не ««).

Итак, попробуйте изменить:

     <methods>
        <include name="group1*"/>
        <exclude name="group2*"/>
    </methods>
  

Автор::

     <methods>
        <include name="group1.*"/>
        <exclude name="group2.*"/>
    </methods>