Как узнать, какой тест запущен в данный момент

У меня есть следующий код

class Test extend Parent{

 @Test
  public void testMethod(){
  };
}

class Parent {
  'here I need to have some check which test is running now'
}

Поскольку родительский класс инициализируется перед классом Test, как узнать, какой тест jUnit выполняется прямо сейчас или какой дочерний класс, если их несколько?

Почему? Вся идея модульных тестов заключается в том, что они независимы.

user10452693 18.10.2018 12:40

Короче говоря, это будут тесты для монолита, и мне нужно переопределить конфигурации для некоторых тестов, один из вариантов - сделать это с помощью задания jenkins, переопределив переменные env, но этот способ, который я спросил, будет более безболезненным

Shell Scott 18.10.2018 12:42

Родительский класс ничего не знает о своих дочерних элементах, конкретный дочерний код в любом случае должен находиться в дочернем классе.

Jeppz 18.10.2018 13:22

Вы можете легко указать имя класса тестового файла даже в родительском. Этого достаточно? Но это не название тестовой функции.

Gergely Bacso 18.10.2018 14:23

да думаю хватит, как это сделать?

Shell Scott 18.10.2018 14:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
42
1

Ответы 1

Вы можете получить имя класса-потомка, который инициирует создание родительского класса:

// in the constructor of the parent System.out.println(Thread.currentThread().getStackTrace()[2].getClassName());

В случае множественного уровня наследования вы можете написать немного дополнительной пользовательской логики и пройти по текущей трассировке стека.

Отказ от ответственности: то, что вы собираетесь сделать, не кажется приятным. Использование встроенных функций, таких как @Before, @BeforeClass или некоторый рефакторинг, может быть лучшим решением.

Другие вопросы по теме