Я думаю, что, возможно, я единственный, кто столкнулся с этой проблемой.
Сегодня я обновил установку eclipse до версии 2020-03 (4.15.0). Я также пытаюсь написать очень простой тест JUnit 5 для нового метода, над которым я работаю.
Когда я запускаю свой тест, прямо сейчас просто базовая заглушка c, я получаю следующую ошибку:
java.lang.SecurityException: class "org.junit.platform.commons.PreconditionViolationException"'s signer information does not match signer information of other classes in the same package
at java.base/java.lang.ClassLoader.checkCerts(ClassLoader.java:1150)
at java.base/java.lang.ClassLoader.preDefineClass(ClassLoader.java:905)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1014)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.createUnfilteredTest(JUnit5TestLoader.java:75)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.createTest(JUnit5TestLoader.java:66)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.loadTests(JUnit5TestLoader.java:53)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Я также вижу следующее диалоговое окно
Моя конфигурация запуска:
Я перепробовал все основные выпуски junit-jupiter (агрегатора) до версии 5.5.0, и все они привели к одной и той же проблеме.
Я пробовал это решение . Тем не менее, этот вопрос касается класса не найден. Я также попробовал то же самое решение, используя junit-platform-commons версии 1.6.1. без изменений.
Однако я могу запустить конфигурацию maven с помощью -Dtest=DeaFileListTest test
при выполнении тестов.
Мой тестовый пример прост, я создаю экземпляр объекта, который имеет метод, который я хочу протестировать, и затем мой тест.
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.not;
import java.io.IOException;
import java.util.List;
import javax.ws.rs.core.Response;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import com.mfgweb.FileRepo;
class DeaFileListTest {
private static FileRepo filerepo;
private static Response response;
@BeforeAll
static void setUpBeforeClass() throws Exception {
filerepo = new FileRepo();
response = filerepo.getDeaFiles();
}
@AfterAll
static void tearDownAfterClass() throws Exception {
response = null;
filerepo = null;
}
@Test
public void deaFileListIsNotEmptyTest() throws IOException {
@SuppressWarnings ( "unchecked" )
List< String > files = ( List< String > )response.getEntity();
assertThat( files, not( empty() ) );
}
}
Поэтому мне любопытно, почему я получаю Исключение безопасности, когда запускаю тест в затмении, хотя Maven, кажется, выполняет их нормально.