Eclipse, выполняющий тесты JUnit5, генерирует исключение java.lang.SecurityException: класс "org.hamcrest.Matchers" - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть простой проект JUnit в проекте maven.

Когда у меня есть этот простой тест:

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 использует версию 1.3.0v20180420-1519.jar в библиотеке JUnit5.

Есть ли способ исправить это, потому что у меня возникают проблемы только тогда, когда мне нужно использовать методы, существующие в классе org.hamcrest.Matchers.Те, которые существуют в org.hamcrest.CoreMatchers, не доставляют никаких проблем.

Я использую eclipse Версия: 2018-12 (4.10.0) Eclipse IDE для разработчиков Enterprise Java.Идентификатор сборки: 20181214-0600

Спасибо

1 Ответ

0 голосов
/ 06 февраля 2019

Благодаря этому https://code.google.com/archive/p/hamcrest/issues/128 есть решение этой проблемы.Просто замените p2-версию баночки для подколенного сухожилия на maven hamcrest-core 1.3.

...