Intellij в scala просит реализовать абстрактные члены в классе, унаследованном от конкретного класса

Я пытаюсь реализовать тесты с помощью scalatest 3.0.5. Я создал свой абстрактный класс, определяющий мою настройку, и мой первый конкретный тестовый класс, как было предложено на официальном сайте.

abstract class TestSpec extends FunSuite

class MyFirstTest extends TestSpec {

    test("This is a test") {assert(1 == 1)}

}

Но тогда Intellij показывает следующую ошибку:

MyFirstTest must either be declared abstract or implement abstract member 'getTestNameForReport(s:String):String' in 'org.scalatest.Suite'

После прочтения исходного кода FunSuite - это конкретный класс.

Я попытался изменить версию scalatest на 2.2.6, но возникла та же проблема. Я пытался реализовать абстрактные члены, но IntelliJ просит переопределить некоторые методы, такие как execute, так что это не кажется хорошей идеей.

Для записей я использую Maven для создания своего проекта, и он отлично строится. Проблема в том, что я не могу запустить свои тесты из IDE, поскольку отображается предупреждение.

1
0
832
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если все построено идеально и вы можете запускать тесты вне IntelliJ, это может быть просто проблемой IDE.

Попробуйте выполнить эти шаги, чтобы аннулировать кеш / перезапуск, и сообщите мне, решит ли это вашу проблему.

Я уже пробовал это, извините, что не упомянул об этом. К сожалению, у меня это не работает. Ссылка на похожую проблему. Я предпочел создать новый вопрос, а не воскрешать прежний из мертвых.

Baptiste Merliot 31.10.2018 14:29

Нет проблем, попробую воспроизвести

Argurth 31.10.2018 14:35

Пытаясь воспроизвести вашу проблему, я нашел еще одно сообщение о похожем, вы проверили, правильно ли установлен JDK в Intellij? (здесь связь в качестве справки, проверьте комментарии к первому ответу) Я могу подтвердить, что у меня все работает (за исключением отсутствующего «with Matchers», чтобы можно было использовать ключевое слово should)

Argurth 31.10.2018 14:48

Я только что проверил, путь jdk IntelliJ установлен на мой JAVA_HOME и Maven тоже.

Baptiste Merliot 31.10.2018 15:01

У меня плохо с ключевым словом should, я не хотел приводить слишком сложный пример на Stack Overflow. Отредактировал это.

Baptiste Merliot 31.10.2018 15:02

Обнаружил аналогичную ошибку в моей конфигурации maven. Проверка, решит ли это мою проблему.

Baptiste Merliot 31.10.2018 15:17

Это не работает даже после повторной отмены кеширования / перезапуска.

Baptiste Merliot 31.10.2018 15:32

Нет проблем с ключевым словом. Я подозреваю, что это проблема конфигурации, так как я не могу ее воспроизвести. Еще более вероятно, что если запуск тестов из командной строки действительно работает. Мне было бы любопытно узнать, в чем проблема, когда вы ее решите.

Argurth 31.10.2018 15:41
Ответ принят как подходящий

В итоге я решил свою проблему, удалив свой проект и создав новый из этот архетип с помощью maven. Думаю, моя проблема заключалась в том, что я как-то испортил помпу.

Если вы столкнулись с подобной проблемой, вот несколько возможных исправлений (спасибо @Argurth):

  • аннулировать кеш / перезапуск после эти шаги (ссылка на аналогичную проблему)
  • проверьте, правильно ли установлен JDK в IntelliJ, выполнив шаги ссылка здесь (см. комментарии в первом ответе).
  • Установите JDK maven в свой JAVA_HOME. (См. Снимок экрана ниже, его можно получить в IntelliJ с помощью File> Setting)

Maven JDK setting

Пришлось удалить старую версию скаляторов из библиотеки. ProjectStructure-> библиотеки -> [найти scalatest 0.9 ...] - удалить

Другие вопросы по теме