junit: impacto de forkMode = “uma vez” na correção do teste

Gostaria de reduzir o tempo que nossa compilação (usando ant) leva para executar os testes. Atualmente, estou usando o padrãoforkMode, qualforks uma nova vm em cada classe de teste (perTest).

Estou pensando em mudar paraforkMode="once" mas eu sou Certifique-se de que isso acoplará os testes de alguma forma e talvez me dê resultados falso positivos e / ou negativos negativos depois de executar meus testes.

Questões

Cada caso de teste obterá um novo ClassLoader para que todas as referências estáticas das execuções anteriores não sejam mais acessíveis / visívei

Existemoutras coisa que levam à dependência / acoplamento de métodos de teste que podem mudar o comportamento (além do carregamento da biblioteca nativa que não estou usando)

E quanto à coleta / finalização de lixo, elas são executadas após cada teste? (Eu não confio neles, mas só quero ter uma imagem completa)


ATUALIZA

De acordo com as respostas atuais, parece que o junit sempre compartilha um único carregador de classe entre todos os casos de teste por vm / fork ao usar o forkMode. (então forkMode = "once" significa que há um carregador de classe para todos os testes)

Isso tem muitas vantagens (testes mais rápidos e pode causar falhas nos testes devido ao acoplamento estático), mas também algumas desvantagens (acoplamento estático, que só funcionará se um carregador de classe compartilhado for usado -> falso positivo)

questionAnswers(3)

yourAnswerToTheQuestion