Выполнение тестов JUnit и правильное разветвление JVM (Ant) - PullRequest
0 голосов
/ 07 августа 2020

Недавно я начал обновление с JUnit 4 до JUnit5, а также последующее обновление до Ant 1.10.8.

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

<junitlauncher>
   <classpath>
      ...
   </classpath>
   <testclasses>
      <fork dir="${baseDirectory}">
         ....
      </fork>
   </testclasses>
</junitlauncher>

Есть ли что-то, чего мне здесь не хватает с функцией fork на Ant? Или есть другой способ обойти это, который работает как «комбо старый муравей и юнит»?

1 Ответ

0 голосов
/ 14 августа 2020

* вздох

Итак, для заинтересованных сторон - ответ кроется в деталях:

Вложенный элемент fork можно использовать для запуска тестов во вновь созданной JVM. Все тесты, которые являются частью этого элемента testclasses, будут выполняться в одном единственном экземпляре новой разветвленной JVM .

Таким образом, JUnit5 не разветвляется для каждого test - он разветвляется для всех элементов в атрибуте testclasses. Для того, чтобы иметь ресурс, который будет прокручиваться с помощью JVM для каждого тестового класса, потребуется некоторое количество c магов снаружи этого блока тестовых классов.

...