Я бы хотел сократить время, которое требуется нашей сборке (с использованием ant) на выполнение тестов.
В настоящее время я использую стандартный forkMode
, который разветвляет новую виртуальную машину для каждого тестового класса ( perTest
).
Я собираюсь переключиться на forkMode = "once"
, но я не уверен, свяжет ли это каким-то образом тесты и, возможно, даст мне ложноположительные и / или ложноотрицательные результаты после выполнения моих тестов.
Вопросы:
Будет ли каждый тестовый пример получать новый ClassLoader , чтобы все статические ссылки из предыдущих запусков больше не были доступны / не видны?
Существуют ли другие вещи , которые приводят к тестовая зависимость / соединение тестовых методов, которые могут изменить поведение (помимо загрузки собственной библиотеки, которую я не использую)
ОБНОВЛЕНИЕ
Согласно текущим ответам кажется, что junit всегда использует один загрузчик классов между всеми тестовыми примерами на виртуальную машину / вилку, когда используя forkMode. (так что forkMode = "once" действительно означает, что для всех тестов существует один загрузчик классов)
Это имеет много преимуществ (более быстрые тесты и может привести к сбою тестов из-за статической связи), но также и некоторые недостатки (статическая связь, которая будет работать, только если используется общий загрузчик классов -> ложное срабатывание)