Scala Исключенные точки прерывания

Я делаю Scala вводный курс из Coursera.

В Intellij я пытаюсь отлаживать, но точки останова игнорируются.

В отличие от этого вопроса: Не удается отладить приложение Scala в IntelliJ + sbt-idea-plugin, я не получаю никаких ошибок.

Нужно ли что-то устанавливать или устанавливать некоторые Intellij-конфигурации?

Ответ 1

Кто-то недавно провел меня через отладку в InteliJ, используя scala/scalatest. Я запускаю InteliJ Idea 2017.2 с последним языковым плагином scala, не установлен плагин SBT (насколько я могу сказать, что это всего лишь часть плагина scala). Надеюсь, это поможет некоторым другим людям:

  • Установите точки останова, щелкнув рядом с номером строки, который вы хотите проверить.
  • Предполагая, что вы используете ScalaTest для настройки некоторых условий и запуска вашей программы, вы можете щелкнуть правой кнопкой мыши по одному из ваших тестовых классов и затем выбрать Debug '[classname]' в раскрывающемся списке. Это должно вскрыть панель отладки внизу. введите описание изображения здесь

Когда вы используете InteliJ для непосредственного запуска отладки (не подключаясь через sbt и т.д.), я действительно смог заставить это работать. У меня не было успеха ни с одним из ответов на связанные вопросы, которые обсуждаются с привязкой к запущенному процессу sbt (по крайней мере, с помощью скалята).

Есть много полезных вещей, которые intelij debug дает вам с помощью scalatest на этом этапе. Скажем, есть один тест, который терпит неудачу, и вы хотите понять, почему. В окне отладки щелкните вкладку консоли, и вы увидите список ваших тестов, упорядоченных по набору с красными метками рядом с теми, которые были неудачными. Вы можете щелкнуть правой кнопкой мыши по одному тесту и выбрать debug из выпадающего списка, чтобы только отладить этот тест. Это очень полезно. введите описание изображения здесь

Надеюсь, это поможет некоторым другим людям! Я также ударил несколько ошибок, которые я должен описать:

  • Иногда мне нужно перезагрузить проект sbt (щелкните по круговой стрелке на вкладке проекта sbt слева). Требуется некоторое время, но он очищает некоторые случайные ошибки о не найденных классах и даже несвязанных звучащих вещах вроде One or more requested classes are not Suites. введите описание изображения здесь
  • Я иногда получаю ошибки о затененных классах, которые не найдены, особенно при использовании докеров через sbt (например, чтобы развернуть db node в моих тестах). Чтобы обойти это, я сначала удалил кэшированный скомпилированный банку (rm -r $HOME/.ivy2/cache/com.spotify/, например, чтобы избавиться от кэшированного скомпилированного кода, вызывающего проблемы), после чего я перезагрузил проект, как в шаге 1.
  • Если все остальное не работает, убедитесь, что проект импортирован правильно. Возможно, вам потребуется удалить папку .idea в вашей папке и повторно импортировать проект sbt. Это разрушает ваши настройки и все, но это работало для меня как последнее средство в прошлом.