junit: как избежать ложных срабатываний при использовании forkMode= "once"?


Я хотел бы ускорить тесты junit, и я думаю об использовании forkMode="once".

Из-за того, что junit , по-видимому, использует общий загрузчик классов для всех тестов в рамках одного процесса, кроме ложных отрицаний (что хорошо, потому что он подвергает статической связи), могут быть также ложные положительные результаты по той же причине.

У меня есть два вопроса по этому поводу:

  1. Можно ли как-то изменить поведение загрузчика классов в junit, чтобы принудительно ввести новый загрузчик классов для каждого тестового случая ? Я думаю, что было бы идеально иметь возможность запускать junit в обоих mdo, чтобы избежать как ложных положительных, так и отрицательных результатов.

  2. Легко ли рандомизировать тестовый порядок , чтобы уменьшить вероятность ложных срабатываний (используя ant)

1 2

1 ответ:

Насколько я знаю, то, что вы хотите, не поддерживается, но в любом случае, я думаю, что вам следует пересмотреть свой подход: вы должны сделать свой код более тестируемым, чтобы он не зависел от нового JVM/Classloader.

Но если вы не можете/не хотите - ваш лучший способ действия-это раскошелиться.