2013-10-14 12 views
7

Sto solo seguendo Scala Cookbookprogetto ScalaTest semplice non sarà compilato

Ma se ho cercato di eseguire il test di base, non sarà compilato a causa della biblioteca pacchetto irrisolto.

Ecco il mio codice ...

build.sbt

name := "BasicProjectWithScalaTest" 

version := "1.0" 

scalaVersion := "2.10.3" 

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

* Hello.scala *

package com.alvinalexander.testproject 

object Hello extends App { 
    val p = Person("Avlin Alexander") 
    println("Hello from " + p.name) 
} 

case class Person(var name: String) 

HelloTest.scala

package com.alvinalexander.testproject 

import org.scalatest.FunSuite 

class HelloTests extends FunSuite { 
    test("the name is set correctly in constructor") { 
    val p = Person("Barney Rubble") 
    assert(p.name == "Barne Rubble") 
    } 

    test("a Person's name can be changed") { 
    val p = Person("Chad Johnson") 
    p.name = "Ochocinco" 
    assert(p.name == "Ochocinco") 
    } 
} 

Se corri corri sbt compilare, si lamenta ...

[info] Set current project to BasicProjectWithScalaTest (in build file:/Users/hongseok/dev/scala/test/) 
[info] Updating {file:/Users/hongseok/dev/scala/test/}test... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Compiling 1 Scala source to /Users/hongseok/dev/scala/test/target/scala-2.10/classes... 
[error] /Users/hongseok/dev/scala/test/src/main/scala/HelloTest.scala:3: object scalatest is not a member of package org 
[error] import org.scalatest.FunSuite 
[error]   ^
[error] /Users/hongseok/dev/scala/test/src/main/scala/HelloTest.scala:5: not found: type FunSuite 
[error] class HelloTests extends FunSuite { 
[error]      ^
[error] /Users/hongseok/dev/scala/test/src/main/scala/HelloTest.scala:6: not found: value test 
[error] test("the name is set correctly in constructor") { 
[error] ^
[error] /Users/hongseok/dev/scala/test/src/main/scala/HelloTest.scala:11: not found: value test 
[error] test("a Person's name can be changed") { 
[error] ^
[error] four errors found 
[error] (compile:compile) Compilation failed 

build.sbt si trova nella directory di prova, Hello.scala è in test/src/main/Scala e HelloTest.scala è in test/src/test/scala

Posso trovare scalatest_2.10-1.9.2.jar nella directory .ivy2.

Perché la libreria non può essere risolta?

A proposito, sto usando OSX Mountain Lion, sbt 0.13, Scala 2.10.3.

+1

convenzione è "src/main/scala" e "src/test/scala". – pedrofurla

+0

oh sì, test è la directory del progetto, quindi la sua convenzione sul percorso è corretta. –

+1

Funziona per me. Dov'è il problema? HelloTests dovrebbe essere in src/test/scala –

risposta

4

pedrofurla scritto:

The convention is src/main/scala and src/test/scala .

OP wrote:

I made mistake with its file location. And if I correct it, works well.