Контекст
У меня есть проект со следующими чертами
- IntelliJ Ultimate 2020.1
- Java 13 (с информацией о модуле. java)
- Kotlin 1.3.72
- JUnit (+ истина)
- maven (я считаю, что это неважно)
База кода смешанные, некоторые классы написаны с использованием простого Java, другие с Kotlin, то же самое верно для тестов. Все работает как положено, то есть
- весь код скомпилирован в правильном порядке и полностью совместим между Kotlin и Java
- весь тест может быть выполнен с использованием либо
mvn test
или IntelliJ «Run Test» - полученный файл может быть запущен (для обеспечения контекста)
, но ...
кроме того, что все работает, IntelliJ предупреждает о необъявленной зависимости модуля , только если тестовый класс записан в Kotlin. Это предупреждение не отображается для тестовых классов, написанных простым Java.
Предупреждение: Ошибка: (9, 6) Символ объявлен в модуль 'org.junit.jupiter.api', от которого текущий модуль не зависит
Это предупреждение обычно позволяет импортировать / запрашивать соответствующий модуль / зависимость, но в * 1048 не предлагается решение * dialog.
То, что я до сих пор пробовал:
- Обновление с JUnit 4 до 5 не изменило ситуацию
- Поиск в Google безрезультатно: (
- проверка того, что тесты, записанные в Kotlin, действительно выполняются при запуске
mvn test
, если тест не пройден - запуск теста вручную с использованием IntelliJ «Выполнить тест»
- преобразование тестов назад и вперед из / в Kotlin
- , явно требующих JUnit API / true в module-info
Последнее явно предотвращает предупреждение, но нет решения, поскольку это на самом деле производит жесткую зависимость. Во время поиска в Google, плагин maven-surefire гарантирует, что тестовые зависимости включены. Кроме того: выполнение mvn test
работает как шарм, как указано выше, так что это, похоже, не является частью проблемы.
Видеть все красные линии при написании теста действительно раздражает ...
подозрительное поведение
тот же тест, но в java - все в порядке
Вопрос:
Как я могу исправить это предупреждение для Kotlin Тестовых классов в IntelliJ?
Примечание
Я пришел к выводу, что это ошибка в IntelliJ, но я Буду рад, если мне покажут то, что я упустил.
Поскольку все, от компиляции до работы с Maven, работает как шарм, я исключил детали, касающиеся структуры проекта и так далее. Проблема заключается в предупреждении в IntelliJ, а не о сломанной сборке или нефункциональных банках. Я с удовольствием добавлю их, если они окажутся необходимыми.
также, так как все действительно работает (кроме раздражающего предупреждения), я действительно не знаю, где продолжить исследование и, следовательно, создал вопрос.