ScalaTest v3: зачем требуется реализовать convertToLegacyEqualizer

Использование ScalaTest 3.0.0 Окружающая среда: Scala 2.11.8, sbt 0.13.5, IntelliJ 14.1.4

build.sbt имеет только

// NOTE: not using org.scalactic
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"

Прошел тест ниже. Однако IntelliJ отмечает красноватую линию ниже MyMiniTest с предупреждающим сообщением:

Класс 'MyMiniTest' должен быть объявлен как абстрактный или реализованный абстрактный член 'convertToLegacyEqualizer [T] (слева: T): TripleEqualsSupport.this.LegacyEqualizer [T] 'в 'Org.scalactic.TripleEqualsSupport'

import org.scalatest.FeatureSpec

class MyMiniTest extends FeatureSpec {
  scenario("A simple test") {
    val a = 12
    assert(a * 3 == 36)
  }
}

В чем причина этого предупреждения и какое рекомендуемое решение для его устранения?

Ответ 1

У меня была та же проблема, что и в IntelliJ, следуя этим шагам, чтобы отменить кеш/перезапуск. Это решит проблему.

Ответ 2

В моем случае это была транзитивная зависимость (не знаю, как могла выглядеть тестовая библиотека) другой версии, конфликтующей с зависимостью, определенной в моем проекте. SBT знает, как справиться с большинством из этих случаев, IntelliJ, похоже, не знает. Обратите внимание, что аннулирование кэша и перезапуск IntelliJ в этом случае не помогут.

Чтобы убедиться в этом, проверьте следующее: Файл → Структура проекта → [Настройки проекта - Библиотеки]. Ищите org.scalatest:*, и вы, вероятно, найдете две библиотеки, например: enter image description here

Затем удалите ненужный, выбрав его и нажав - в верхней части панели. Вот и все, IntelliJ теперь будет счастлив.

Более чистым решением было бы исключить ненужную библиотеку из ваших зависимостей, например: ExclusionRule("org.scalatest", "scalatest_2.11-2.2.4")

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

Ответ 3

Пожалуйста, проверьте все ваши зависимости и проверьте, загружается ли какая-либо из этих зависимостей org.scalatest.*. Если версия org.scalatest.*, которую вы определили, отличается от той, которая загружается из-за других определенных зависимостей, эта проблема возникает. Я использовал org.mockito%mockito-scala, который нуждался в самой лучшей версии 3.0.8. Но самое большое, что я определил, было 2.2.5. Изменив версию scalatest на 3.0.8, я смог решить эту проблему.

Надеюсь это поможет.