Здравствуйте.
Имеются наборы сьютов (в одной папке) с тестами WebDriver. Они запускаются все сразу через дженкинс и maven одной командой mvn clean test. Задача - достать имя текущего выполняемого сьюта (для логов). В случае запуска одного сьюта можно было передавать имя сьюта через свойство argLine, но при запуске группой мне никаких переменных неизвестно. Кто-нибудь может помочь? Спасибо.
Можно написать Rule, а внутри него достаточно просто взять и имя запускаемого теста, и имя сьюта.
Полагаю, что вы уже нашли ответ, но все же. Так можно получить имя теста
public class BlaBlaBla{
@Rule
public TestName testName = new TestName();
@Test
public void megaTest(){
System.out.println(testName.getMethodName());
}
}
Возможно это неудачный вариант, но на всякий случай предложу )
Thread.currentThread().getStackTrace(). Из стека можно вытянуть класс с которого запускали. Я использовал такую методику чтобы вытягивать имя выполняемого теста
По поводу Rule – да, таким образом тоже можно много интересных штук сделать. Тоже использую )
Ещё один вариант: в java класс ThreadLocal. Можно в сюите запустить метод:
@BeforeClass
public static void setSuiteNameValue() {
MyClassWithThreadLocalField.setSuiteValue(“MyClassName”)
}
А в том классе определить статик филд private static final ThreadLocal suiteValue = new ThreadLocal<>();
Так как это поле будет выдавать своё значение исходя из потока, то таким образом вы cможете понять из какого сюита запустился тест