Я бы хотел сократить время, необходимое нашей сборке (используя ant) для запуска тестов.
В настоящее время я использую значение по умолчанию forkMode
, которое создает новый vm для каждого класса тестирования (perTest
).
Я думаю о том, чтобы перейти на forkMode="once"
, но я не уверен, если это каким-то образом соединит тесты и, возможно, даст мне ложноположительные и / или ложноположительные результаты после выполнения моих тестов.
Вопросы:
Получит ли каждый тестовый пример новый ClassLoader , чтобы все статические ссылки из предыдущих запусков больше не были доступны / не видны?
Существуют ли другие вещи , которые приводят к тестовой зависимости / соединению методов тестирования, которые могут изменить поведение (помимо загрузки собственной библиотеки, которую я не использую)
- Как насчет сбора / завершения сборки мусора, они запускаются после каждого теста? (Я не полагаюсь на них, но я просто хочу получить полную картину)
UPDATE
Согласно текущим ответам, при использовании forkMode кажется, что junit всегда совместно использует один загрузчик классов для всех тестовых случаев на vm / fork.
(поэтому forkMode = "Once" действительно означает, что для всех тестов существует один загрузчик классов)
Это имеет много преимуществ (более быстрые тесты и может привести к сбою тестов из-за статической связи), но также имеет ряд недостатков (статическая связь, которая будет работать только при использовании разделяемого загрузчика классов -> ложное срабатывание)