【问题标题】:Simple scalatest project won't be compiled不会编译简单的 scalatest 项目
【发布时间】:2013-10-21 14:05:30
【问题描述】:

我只是在关注 Scala Cookbook

但是如果我尝试运行基本测试,由于未解析的包库,它不会被编译。

这是我的代码...

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")
  }
}

如果运行 sbt compile,它会报错...

[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 在 test 目录下,Hello.scala 在 test/src/main/scala 下,HelloTest.scala 在 test/src/test/scala 下

我可以在 .ivy2 目录中找到 scalatest_2.10-1.9.2.jar。

为什么无法解析库?

顺便说一句,我使用的是 OSX Mountain Lion、sbt 0.13、Scala 2.10.3。

【问题讨论】:

  • 约定是“src/main/scala”和“src/test/scala”。
  • 哦,是的,test是项目目录,所以它的路径约定是正确的。
  • 它对我有用。问题出在哪里? HelloTests 应该在 src/test/scala
  • 知道了,我把它的文件位置弄错了。如果我纠正它,效果很好。抱歉打扰了:(
  • 感谢您回答您自己的问题,Hongseok。它帮助我意识到我犯了一个类似的错误:尝试编译包含在我的 src/ 文件夹中的 ScalaTest 测试,而它需要在我的 test/ 文件夹中。

标签: scala sbt


【解决方案1】:

pedrofurla 写道:

约定是src/main/scalasrc/test/scala

OPwrote:

我的文件位置有误。如果我纠正它,效果会很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多