Классы в файле Testng, кажется, инициализируются вместе - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть два класса, унаследованных от класса MyTestData, который получает тестовые данные из Excel в зависимости от переданного ему параметра.

public class A1 extends MyTestData {

    public A1() {
        super("A1");
    }

    @Test
    //Methods

-

public class A2 extends MyTestData {

    public A2() {
        super("A2");
    }

    @Test
    //Methods

-

public class MyTestData {

    public MyTestData(String test) {

        System.out.println("test data parameter is " + test);
        switch (test) {
        case "A1":
            A1_data();
            break;
        case "A2":
            A2_data();
            break;
        }
    }

    private void A1_data() {
        //Fetch data from excel
    }

    private void A2_data() {
        //Fetch data from excel
    }

У меня есть два этих класса в testng. xml file

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
    <test name="Test A1">
     <classes>
       <class name="mypackage.A1"/>
     </classes>
   </test>

  <test name="Test A2">
     <classes>
       <class name="mypackage.A2"/>
     </classes>
   </test>
</suite>

Но когда я запускаю файл xml, я получаю вывод на консоль, как только начинается выполнение:

test data parameter is A1
test data parameter is A2

И тест А1 выполняется с данными А2. Почему это происходит и как я могу предотвратить это? Я хочу, чтобы A2 запускался после завершения A1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...