Невозможно запустить модульные тесты со 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 -> artifact
s. Там может быть ошибка. Просто нажмите на кнопку "Исправить". Также попробуйте воссоздать итерационный проект из конфигурации maven. Обычно есть проблемы с библиотеками, вроде TEST/PROVIDED
,
Это происходит из-за плагина TestNG. Это проблема как для IntelliJ, так и для Eclipse.
Легко решается двумя способами:
- Обновите последнюю версию плагина TestNG для выбранной вами среды IDE, надеясь, что поставленная версия не будет конфликтовать с той, которая требуется для вашего проекта.
- Включите "Использовать 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>