Как ведет себя Junit BeforeClass аннотация в объекте верхнего уровня в Scala? - PullRequest
0 голосов
/ 17 октября 2018

У меня вопрос новичка: у меня есть проект Scala на основе искры, который использует junit.Это важная часть проекта:

object ResearchCrawlServiceTestSuite {
  implicit var ss: SparkSession = _
  var fs: FileSystem = _


  @BeforeClass
  def init(): Unit = {
    ss = SparkSession.builder().master("local").getOrCreate()
    fs = get(ss.sparkContext.hadoopConfiguration)
  }
}

class ResearchCrawlServiceTestSuite {
  self =>
  private object testImplicits extends SQLImplicits {
    protected override def _sqlContext: SQLContext = self.ss.sqlContext
  }

  import testImplicits._

  implicit val ss: SparkSession = ResearchCrawlServiceTestSuite.ss
  val fs: FileSystem = ResearchCrawlServiceTestSuite.fs

  @Test def submitCrawlSanity() {
    val seeds = (0 to 4).map(i => s"www.$i.com").toDF("url")
    ...
   }
}

Если я изменю имя объекта, чтобы оно отличалось от класса под ним, кажется, что метод @BeforeClass не запустится.У меня вопрос, когда запускается аннотация @BeforeClass?как он ведет себя внутри объекта верхнего уровня, который не является объектом-компаньоном?как он ведет себя внутри объекта верхнего уровня, который является объектом-компаньоном?как ведет себя внутри вложенного объекта?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...