Выберите Selenium test по параметру - PullRequest
0 голосов
/ 11 сентября 2018

Мы создали несколько тестов с использованием Selenium Webdriver.Используя аннотации JUnit, мы вручную выбираем, какие тесты будут выполняться (@Test, @Ignore).

Примерно так:

import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; 
import ...

@RunWith(JUnit4.class)
public class MainclassTest {

  @Test
  @Ignore
  public void Test01() {
    ...
  }

  @Test
  // @Ignore
  public void Test02() {
    ...
  }

}

Выше мы хотели бы запустить только Test02.

Но теперь мы бы хотели запустить эти тесты Дженкинса и выбрать один или несколько тестов по параметрам вместо комментария @Ignore.В Jenkins мы просто предоставляем файл POM и некоторые параметры с -Dxxxx.

Каковы хорошие практики для запуска различных тестовых комбинаций в разных заданиях jenkins?Лучше разбить тесты на разные классы?Или мне лучше настроить требуемый тест в файле maven pom?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете использовать Категории JUnit .

В качестве простого примера для приоритета объявите интерфейсы и расширьте иерархию следующим образом:

/** Marker for test case priority. * /
package priority;
public interface Low {
}
public interface Medium extends Low {
}
public interface High extends Medium {
}

Затем аннотируйте свои методыпри необходимости, например:

public class MainclassTest {
  @Test
  @Category(priority.High.class)
  public void Test01() {
    ...
  }
  @Test
  @Category(priority.Low.class)
  public void Test02() {
    ...
  }
}

Наконец, настройте свой POM

<build>
  <plugins>
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <groups>${testcase.priority}</groups>
      </configuration>
    </plugin>
  </plugins>
</build>

и разрешите Jenkins запустить его с нужным параметром:

mvn test -Dtestcase.priority=priority.High

(обратите внимание, что из-за расширения интерфейсов Low будет запускать все категории. Если вы этого не хотите, просто удалите расширение).

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