У меня есть следующий код
class Test extend Parent{
@Test
public void testMethod(){
};
}
class Parent {
'here I need to have some check which test is running now'
}
Поскольку родительский класс инициализируется перед классом Test, как узнать, какой тест jUnit выполняется прямо сейчас или какой дочерний класс, если их несколько?
Короче говоря, это будут тесты для монолита, и мне нужно переопределить конфигурации для некоторых тестов, один из вариантов - сделать это с помощью задания jenkins, переопределив переменные env, но этот способ, который я спросил, будет более безболезненным
Родительский класс ничего не знает о своих дочерних элементах, конкретный дочерний код в любом случае должен находиться в дочернем классе.
Вы можете легко указать имя класса тестового файла даже в родительском. Этого достаточно? Но это не название тестовой функции.
да думаю хватит, как это сделать?




Вы можете получить имя класса-потомка, который инициирует создание родительского класса:
// in the constructor of the parent
System.out.println(Thread.currentThread().getStackTrace()[2].getClassName());
В случае множественного уровня наследования вы можете написать немного дополнительной пользовательской логики и пройти по текущей трассировке стека.
Отказ от ответственности: то, что вы собираетесь сделать, не кажется приятным. Использование встроенных функций, таких как @Before, @BeforeClass или некоторый рефакторинг, может быть лучшим решением.
Почему? Вся идея модульных тестов заключается в том, что они независимы.