Невозможно запустить модульные тесты со Snakeyaml в IntelliJ

Я создал компонент Java, который читает файл YAML, используя SnakeYaml. Я использую среду IntelliJ с подключаемым модулем Maven, а мой проект построен с использованием pom-файла Maven. Когда я запускаю тестовый проект Maven, все мои модульные тесты проходят успешно. Тем не менее, когда я запускаю модульные тесты непосредственно в IntelliJ, они терпят неудачу.

В частности, вызов нового Yaml (myConstructor) ниже вызывает исключение:

Constructor myConstructor = new Constructor(....)
Yaml yaml = new Yaml(myConstructor)

Конкретное исключение:

java.lang.NoSuchMethodError: org.yaml.snakeyaml.Yaml. (Lorg / yaml / snakeyaml / constructor / BaseConstructor;) V

Есть идеи?

3 ответа

Решение

Взгляни на file -> proj structure -> artifacts. Там может быть ошибка. Просто нажмите на кнопку "Исправить". Также попробуйте воссоздать итерационный проект из конфигурации maven. Обычно есть проблемы с библиотеками, вроде TEST/PROVIDED,

Это происходит из-за плагина TestNG. Это проблема как для IntelliJ, так и для Eclipse.

Легко решается двумя способами:

  1. Обновите последнюю версию плагина TestNG для выбранной вами среды IDE, надеясь, что поставленная версия не будет конфликтовать с той, которая требуется для вашего проекта.
  2. Включите "Использовать Project TestNG jar" в Eclipse (или эквивалент IntelliJ). Этот параметр доступен в разделе TestNG конкретных параметров проекта.

Второй способ предпочтительнее, потому что зависимостями TestNG будет управлять ваш инструмент сборки (вы используете инструмент сборки, верно?!), И у вас намного больше гибкости.

Ниже работал для меня

<dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.2</version>
            <type>jar</type>
            <exclusions>
                <exclusion>
                    <artifactId>snakeyaml</artifactId>
                    <groupId>org.yaml</groupId>
                </exclusion>
            </exclusions>
        </dependency>
Другие вопросы по тегам