Ответ 1
Это также может означать, что у вас есть несколько версий скалята. Я столкнулся с такой же проблемой с ошибкой времени компиляции при утверждении
Я пытаюсь скомпилировать проект Scala, который содержит scalatest. Он компилирует normal на sbt
sbt
> compile
> test:compile
но когда я пытаюсь построить его с помощью IDEA, он показывает следующую ошибку:
Error:(37, 11) exception during macro expansion:
java.lang.NoSuchMethodError: org.scalactic.BooleanMacro.genMacro(Lscala/reflect/api/Exprs$Expr;Ljava/lang/String;Lscala/reflect/api/Exprs$Expr;)Lscala/reflect/api/Exprs$Expr;
at org.scalatest.AssertionsMacro$.assert(AssertionsMacro.scala:34)
assert((ElementMeasures.baseElementDistance(mEl1, mEl2) - 0.33333).abs < 0.001)
^
для каждой assert
функции в тесте.
Файл build.sbt
содержит следующее:
name := "ner-scala"
organization := "ml.generall"
version := "1.0-SNAPSHOT"
scalaVersion := "2.11.8"
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.0"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"
...
Это также может означать, что у вас есть несколько версий скалята. Я столкнулся с такой же проблемой с ошибкой времени компиляции при утверждении
Я просто столкнулся с той же проблемой, о чем говорил Алексей (он должен получить надпись, но у меня нет достаточной репутации для продвижения или комментария - спасибо Алексею), похоже, что это было вызвано наличием нескольких версий scalatest в моем проекте, Я смог исправить это, исключив старый скаляр из библиотеки, которая привела его (и, пожалуйста, обратите внимание, что исключение должно указывать двоичную версию scala, например _2.11 и т.д.!):
...exclude("org.scalatest", "scalatest_2.11")
Также было предупреждение в журнале событий до исключения:
SBT project import
[warn] Multiple dependencies with the same organization/name but different versions.
[warn] * org.scalatest:scalatest_2.11:(2.2.6, 3.0.1)
Я думаю, у вашего IntelliJ отсутствует библиотека scalatest
из IntelliJ, перейдите в Project Structure
→ Project Settings
→ Libraries
→ +
символ → From Maven
→ scalatest
поиск для scalatest
с правильной версией
после добавления библиотеки scalatest
для IntelliJ, ошибка assert
должна исчезнуть.
Это не гарантированное решение, просто попробуйте :)
Для меня эта проблема была решена путем изменения
"org.scalactic" %% "scalactic" % "3.0.1",
"org.scalatest" %% "scalatest" % "3.0.1" % test
к
"org.scalactic" %% "scalactic" % "3.0.1",
"org.scalatest" %% "scalatest" % "3.0.1"