Исключить группы в TestNG не в комплекте - PullRequest
0 голосов
/ 06 сентября 2018

Я использую файл набора в TestNG, чтобы определить тесты, которые я хочу выполнить. Эти комплекты запускаются с заданием Дженкинса, и теперь мне нужно сделать необязательным исключение определенной группы или нет.

Я думал о добавлении дополнительного параметра сборки в jenkins и добавлении флага в свойства системы, если этот параметр установлен так -DexcludeMyGroup=true. В некоторых методах @BeforeSuite или @BeforeTest в моем базовом тесте я хочу проверить свойство и его значение. В зависимости от этого я хочу исключить эту группу из моего набора.

Я пытался

@BeforeTest
public void beforeTest(XmlTest test) {
  if (!Boolean.parseBoolean(System.getProperty("excludeMyGroup"))) {
      test.addExcludedGroup("myGroup");
  }
}

а также

@BeforeSuite
public void beforeSuite(ITestContext context) {
  if (!Boolean.parseBoolean(System.getProperty("excludeMyGroup"))) {
      cont.getSuite().getXmlSuite().addExcludedGroup("myGroup");
  }
}

но оба не работают.

Я пытался использовать второй подход для изменения других параметров, таких как число потоков, и это прекрасно работает с использованием cont.getSuite().getXmlSuite().setThreadCount(10), но я пока не нашел способа исключить определенную группу, кроме файла комплекта. Есть ли возможность исключить это впоследствии?

1 Ответ

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

Я нашел пару способов сделать это:

  1. Вы также можете программно запустить комплект TestNG в методе main и использовать строки командной строки, чтобы определить, какие группы исключать (http://static.javadoc.io/org.testng/testng/6.11/org/testng/TestNG.html#setExcludedGroups-java.lang.String-):

    public static void main(String[] args) { TestNG tng = new TestNG(); tng.setExcludedGroups("excludedGroup1, excludedGroup2"); tng.run(); }

Тогда вы можете запустить файл класса из терминала и просто сделать

$ java <classfilename> excludedgroup1 excludedgroup2

и напишите основную функцию, как показано ниже:

public static void main(String[] args) {
    TestNG tng = new TestNG();
    tng.setExcludedGroups(args[0] + ", " + args[1]);
    tng.run();
}
  1. TestNG имеет переключатель командной строки с именем -excludegroups, который будет принимать разделенный запятыми список групп, которые вы хотите исключить, если вы запустите файл testng.xml из командной строки: http://testng.org/doc/documentation-main.html#running-testng.

  2. Запустите его через верный плагин Maven. Перейдите к части «исключенные группы» на этой странице - вы можете определить их в pom.xml следующим образом.

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