TestNG @AfterMethod для определенной группы запускается после каждого метода в Eclipse - PullRequest
0 голосов
/ 07 июня 2011

Я не понимаю, как работает группировка в TestNG, у меня есть этот код:

    @AfterMethod(groups = { "refreshPage" })
    public void refresh() throws IOException {
        driver.navigate().refresh();
    }

    @Test
    public void test1() {

    }

    @Test(groups = { "refreshPage" })
    public void test2() {

    }

И @AfterMethod запускается после них обоих, даже если только второй является частью этогогруппа.Я предполагаю, что это не относится к файлу конфигурации Template testng.xml, который генерируется Eclipse для выполнения.Это просто базовая настройка для всего класса тестирования или отдельного метода тестирования.Таким образом, это не должно влиять на группировкигруппы методов (с / без обновления).

<test name="Test1">
  <groups>
    <run>
      <include name="refreshPage*"/>
    </run>
  </groups>

  <classes>
    <class name="example.Test"/>
  </classes>
</test>

<test name="Test2">
  <groups>
    <run>
      <include name="dontRefreshPage*"/>
    </run>
  </groups>

  <classes>
    <class name="example.Test"/>
  </classes>
</test>

Я понятия не имею, как заставить его работать при запуске через Eclipse, потому что <test> заменены в шаблоне.

1 Ответ

1 голос
/ 07 июня 2011

Извините, но я не понимаю вашего описания проблемы. Два ваших тестовых метода принадлежат группе «обновить», поэтому, если вы запустите эту группу, вы увидите, что оба они запущены, и за каждым из них последует вызов prepareTest () (кстати, странно, что метод after будет называться "prepareTest ()", вы уверены, что не хотите, чтобы это было @BeforeMethod?).

В вашем коде есть что-то странное: ваши два тестовых метода объявляют провайдера данных, но они не принимают никаких аргументов. Либо им нужны аргументы, поэтому вы должны обновить их подпись, чтобы они соответствовали возвращаемым поставщиками данных, либо нет, и вам следует удалить атрибут dataProvider.

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