Я перевожу нашу кодовую базу на использование java 11 (openJDK), и у меня много тестов с powermock и mockito. Тесты используют JSON для создания объектов на основе предоставленного имени класса. Поиск класса выполняется с помощью следующего кода:
for (final ClassPath.ClassInfo info : ClassPath.from(loader).getTopLevelClasses()) {
if (info.getName().endsWith("." + pClassName)) {
return info.getName();
}
}
return null;
Когда я отлаживаю код, Thread.currentThread (). GetContextClassLoader () возвращает Но ClassPath.from ( loader) .getTopLevelClasses () содержит 0 элементов. Мои зависимости:
- jackson.core 2.10.3
- junit 4.13
- верный 2.22.1
- компилятор 3.8.0
- оттенок 3.2.1
- powermock 2.0.5
- mockito 3.3.0
Я исключил bytebuddy из powermock-api-mockito2 и mockito- ядро, потому что оно уже добавлено в powermock-module-junit4
Конфигурация Surefire:
<configuration>
<useSystemClassLoader>true</useSystemClassLoader>
<reuseForks>true</reuseForks>
<forkCount>1</forkCount>
<argLine>-Xms256m -Xmx2800m -Dmvn.forkNumber=${surefire.forkNumber} -XX:-UseGCOverheadLimit</argLine>
</configuration>