Bar*_*nom 5 scala intellij-idea sbt
我是一名 scala 菜鸟,正在为 scala Spark 程序编写单元测试用例。当我尝试使用命令运行我的 scala 单元测试用例时sbt test,出现以下错误
BasicACRStatsTest.scala:8: not found: type BasicACRStats
[error] var basicStats: BasicACRStats = _
[error] ^
BasicACRStatsTest.scala:14: not found: type BasicACRStats
[error] basicStats = new BasicACRStats
[error] ^
[error] two errors found
[error] (test:compile) Compilation failed
Run Code Online (Sandbox Code Playgroud)
我正在使用 intellij,当我尝试引用BasicACRStats它显示的类时Cannot resolve symbol BasicACRStats,即使我已经在正确的包中声明了它。
BasicACRStat.scala
package com.company.analytics
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path}
import org.apache.hadoop.fs.FileSystem.Statistics
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.sql.hive.HiveContext
import scala.collection.mutable.ArrayBuffer
import collection.mutable
object BasicACRStats {
def main(args: Array[String]) {
// Some code goes here
}
}
Run Code Online (Sandbox Code Playgroud)
基本ACRStatsTest.scala
import com.company.analytics
import org.scalatest.FunSuite
import org.scalatest.BeforeAndAfter
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
class BasicACRStatsTest extends FunSuite with BeforeAndAfter {
@transient var sc: SparkContext = _
var basicStats: BasicACRStats = _
// some code goes here
}
Run Code Online (Sandbox Code Playgroud)
简单.sbt
name := "basicACRStats"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.2.0"
libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "1.1.0"
libraryDependencies += "org.apache.spark" % "spark-hive_2.10" % "1.1.0"
libraryDependencies += "org.scalatest" % "scalatest_2.10" % "1.9.1" % "test"
Run Code Online (Sandbox Code Playgroud)
项目目录结构
projectfoo
.idea
src
main
scala
com
company
analytics
BasicACRStats.scala
test
scala
BasicACRStatTest.scala
target
simple.sbt
Run Code Online (Sandbox Code Playgroud)
我不确定如何解决此问题,请分享您的想法,如果您需要更多信息,请告诉我。
BasicACRStats似乎是object您的示例代码中的 ,而不是class.
对象是单例而不是类/类型。在这种情况下,我有一种类型BasicACRStats.type,永远只有一个实例。因为它不是一个类型,调用new BasicACRStats是无效的 Scala,也不会尝试将它用作值的类型。
您想要的可能是声明BasicACRStats一个类。这将使示例代码的其余部分有意义。
| 归档时间: |
|
| 查看次数: |
17127 次 |
| 最近记录: |