복붙노트

[SCALA] 멀티 프로젝트에서 SBT 테스트 - 종속 관계 : 종속 프로젝트에 테스트 - 코드 사용 가능 확인

SCALA

멀티 프로젝트에서 SBT 테스트 - 종속 관계 : 종속 프로젝트에 테스트 - 코드 사용 가능 확인

나는 몇몇 프로젝트는 서로 의존성을 가지고 SBT 멀티 프로젝트를했습니다. 이 같이 :

 lazy val coreProject: Project = Project(
    id = "core-project",
    base = file("./core-project"),
    // other stuff
    ))

  lazy val extensions: Project = Project(
    id = "extensions",
    base = file("./extensions"),
    dependencies = Seq(coreProject)
  )

지금은 테스트 폴더에있는 '핵심'프로젝트의 일부 테스트 코드가 있습니다. 모의 객체 및 테스트 유틸리티와 같은 물건도 있습니다. 지금은 확장의 시험에서 그 테스트 유틸리티를 사용하고 싶습니다. 내가 종속성을 선언 한 이후 생산 코드의 경우이, 작동합니다. 그러나이 테스트를 위해 보유하지 않는 의존성을 보인다. 내가 테스트를 실행하면 I 클래스 누락 된 컴파일 오류가 발생합니다. 이러한 클래스는 코어 프로젝트의 테스트 코드에서 있습니다.

어떻게 의존성도 시험 범위에 대한 테스트 코드를 포함해야한다는 SBT를 알 수 있습니까? 그래서 'exension' 프로젝트의 테스트 코드에서 내 모의 객체를 재사용 할 수있다?

해결법

  1. ==============================

    1.그래서 같이 :

    그래서 같이 :

    dependencies = Seq(coreProject % "compile->compile;test->test")
    

    이것은 당시 시작하기 - 멀티 프로젝트 가이드는 '당 구성 클래스 경로 의존성 "에서 설명합니다.

  2. ==============================

    2.초기 프로젝트를 선언 한 후, 당신은 또한 .dependsOn ( "테스트 -> 테스트 컴파일 -> 컴파일"coreProject %)로이 작업을 수행 할 수 있습니다.

    초기 프로젝트를 선언 한 후, 당신은 또한 .dependsOn ( "테스트 -> 테스트 컴파일 -> 컴파일"coreProject %)로이 작업을 수행 할 수 있습니다.

    lazy val coreProject = Project("core-project")
    lazy val extensions = Project("extensions").dependsOn(coreProject % "compile->compile;test->test")
    
  3. from https://stackoverflow.com/questions/8193904/sbt-test-dependencies-in-multiprojects-make-the-test-code-available-to-dependen by cc-by-sa and MIT license