Eclipse 运行 JUnit5 测试抛出 java.lang.SecurityException:class "org.hamcrest.Matchers"
Eclipse running JUnit5 tests throw java.lang.SecurityException: class "org.hamcrest.Matchers"
我在maven项目中有一个简单的JUnit项目。
当我进行这个简单的测试时:
import java.util.Arrays;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
import org.junit.jupiter.api.Test;
import lombok.val;
class MyTest {
@Test
void test() {
val list = Arrays.asList(2, 3, 6, 8, 5);
val expected = Arrays.asList(5, 6);
assertThat(list, containsInAnyOrder(expected));
}
}
然后我将 Junit5 库添加到构建路径,我得到这个错误:
java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package
我发现会发生这种情况,因为我使用的是 hamcrest-2.1.jar 作为依赖项,而 eclipse 在 JUnit5 库中使用的是 1.3.0v20180420-1519.jar 版本。
有什么方法可以解决这个问题,因为我只有在需要使用 org.hamcrest.Matchers class 中存在的方法时才会遇到问题。 org.hamcrest.CoreMatchers里面的都没有问题。
我正在使用日食
版本:2018-12 (4.10.0)
面向企业 Java 开发人员的 Eclipse IDE。
构建 ID:20181214-0600
谢谢
感谢 https://code.google.com/archive/p/hamcrest/issues/128 这个问题得到了解决。只需将 .p2 版本的 hamcrest jar 替换为 maven hamcrest-core 1.3。
我在maven项目中有一个简单的JUnit项目。
当我进行这个简单的测试时:
import java.util.Arrays;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
import org.junit.jupiter.api.Test;
import lombok.val;
class MyTest {
@Test
void test() {
val list = Arrays.asList(2, 3, 6, 8, 5);
val expected = Arrays.asList(5, 6);
assertThat(list, containsInAnyOrder(expected));
}
}
然后我将 Junit5 库添加到构建路径,我得到这个错误:
java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package
我发现会发生这种情况,因为我使用的是 hamcrest-2.1.jar 作为依赖项,而 eclipse 在 JUnit5 库中使用的是 1.3.0v20180420-1519.jar 版本。
有什么方法可以解决这个问题,因为我只有在需要使用 org.hamcrest.Matchers class 中存在的方法时才会遇到问题。 org.hamcrest.CoreMatchers里面的都没有问题。
我正在使用日食 版本:2018-12 (4.10.0) 面向企业 Java 开发人员的 Eclipse IDE。 构建 ID:20181214-0600
谢谢
感谢 https://code.google.com/archive/p/hamcrest/issues/128 这个问题得到了解决。只需将 .p2 版本的 hamcrest jar 替换为 maven hamcrest-core 1.3。