2014-09-10 2 views
4

Я не могу заставить Intellij 13.1 запускать мои тесты. Я создал простой проект, чтобы попытаться изолировать проблему, но она также не работает. Вот мои настройки:Скататель не работает в intellij 13.1

  • Intellij 13,1 нацеливания JDK 1.6 (необходимо для ява библиотек используется)
  • SBT поддержал проект 2,10 Scala
  • последней scalatest (libraryDependencies + = "org.scalatest" % «scalatest_2. 11" % "2.2.1" % "тест")

Здесь тестируемой:

object Calc { 
    def add(a: Int, b: Int) = { 
    a + b 
    } 
} 

Вот тест:

import org.scalatest.FunSuite 

class Calc$Test extends FunSuite { 
    test("two number should add") { 
    assert(Calc.add(2, 5) == 7) 
    } 
} 

Это ошибка я получаю:

Error:scalac: while compiling: /Users/test-user/Development/temp/sample/src/test/scala/Calc$Test.scala during phase: typer library version: version 2.10.4 compiler version: version 2.10.4 reconstructed args: -nobootcp -javabootclasspath : -classpath /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/deploy.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/dt.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javaws.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/jce.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/jconsole.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/management-agent.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/plugin.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/sa-jdi.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/charsets.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jsse.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/apple_provider.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/dnsns.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/localedata.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/sunjce_provider.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/sunpkcs11.jar:/Users/test-user/Development/temp/sample/target/scala-2.10/test-classes:/Users/test-user/Development/temp/sample/target/scala-2.10/classes:/Users/test-user/.sbt/boot/scala-2.10.4/lib/scala-library.jar:/Users/test-user/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.2.jar:/Users/test-user/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.11.2.jar:/Users/test-user/.ivy2/cache/org.scala-lang.modules/scala-xml_2.11/bundles/scala-xml_2.11-1.0.2.jar:/Users/test-user/.ivy2/cache/org.scalatest/scalatest_2.11/bundles/scalatest_2.11-2.2.1.jar:/Users/test-user/.sbt/boot/scala-2.10.4/lib/scala-reflect.jar:/Users/test-user/.sbt/boot/scala-2.10.4/lib/scala-compiler.jar last tree to typer: Apply(method ==) symbol: method == in class Int (flags: ) symbol definition: def ==(x: Int): Boolean tpe: Boolean symbol owners: method == -> class Int -> package scala context owners: value -> class Calc$Test -> package == Enclosing template or block == Template(// val : in class Calc$Test "FunSuite" // parents ValDef( private "_" ) // 2 statements DefDef(// def(): Calc$Test in class Calc$Test "" [] List(Nil) // tree.tpe=Calc$Test Block(// tree.tpe=Unit Apply(// def(): org.scalatest.FunSuite in class FunSuite, tree.tpe=org.scalatest.FunSuite Calc$Test.super."" // def(): org.scalatest.FunSuite in class FunSuite, tree.tpe=()org.scalatest.FunSuite Nil ) () ) ) Apply( Apply( "test" "two number should add" ) Apply( "assert" Apply(// def ==(x: Int): Boolean in class Int, tree.tpe=Boolean Calc.add(2, 5)."$eq$eq" // def ==(x: Int): Boolean in class Int, tree.tpe=(x: Int)Boolean 7 ) ) )) == Expanded type of tree == TypeRef(TypeSymbol(final abstract class Boolean extends AnyVal)) uncaught exception during compilation: scala.MatchError

Любая идея, что может быть проблема? Я предполагаю, что это вызвано простой проблемой конфигурации, поскольку код примерно такой же простой, как может быть.

ответ

6

Одна из проблем, которые у вас есть, заключается в том, что вы запрашиваете версию scalatest, скомпилированную для Scala 2.11, но вы говорите, что используете Scala 2.10. Вам нужно «scalatest_2.10» вместо «scalatest_2.11» в файле build.sbt. Используйте

libraryDependencies += "org.scalatest" % "scalatest_2.10" % "2.2.1" % "test" 

или, возможно, даже

libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.1" % "test" 

, чтобы получить версию Scala подобрали автоматически (обратите внимание на изменения в двуспальную процентов:. %%)

+0

хорошо, что было легко :) Я думал, что я прочитал, что я мог бы, что scalatest с Скале 2.10 - Я предполагаю, что я ошибся. – IUnknown

+0

Интересно, неужели вы все еще немного смущены различием между версией конкретного используемого вами API и версией Scala, для которой компилируется конкретный пакет. В случае вашей зависимости выше вы запрашивали версию 2.2.1 API-интерфейсов scalatest, и это доступно в пакетах как для Scala 2.10, так и для Scala 2.11. Для scalatest версия компилятора испечена в имя артефакта, но это не всегда делается так. Может быть полезно посмотреть [этот список] (http://maven-repository.com/search?q=scalatest). –

0

Поскольку ваш проект 2,10 резервное использовать ту же версию для scalatest тоже,

scalaVersion := "2.10.5" // don't need to mention scalatest_2.10, will be reflected automatically 

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" // works with 2.2.1 or 3.0.0 

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test" 

Или с помощью Maven,

<dependency> 
    <groupId>org.scalactic</groupId> 
    <artifactId>scalactic_2.10</artifactId> 
    <version>3.0.0</version> 
</dependency> 

<dependency> 
    <groupId>org.scalatest</groupId> 
    <artifactId>scalatest_2.10</artifactId> 
    <version>3.0.0</version> 
    <scope>test</scope> 
</dependency> 

Ссылка здесь http://www.scalatest.org/install

Смежные вопросы