Programing

다중 프로젝트의 SBT 테스트 종속성 : 종속 프로젝트에서 테스트 코드를 사용할 수 있도록 설정

lottogame 2020. 11. 2. 07:32
반응형

다중 프로젝트의 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)
  )

이제 테스트 폴더의 '핵심'프로젝트에 테스트 코드가 있습니다. 모의 및 테스트 유틸리티와 같은 것도 있습니다. 이제 확장 테스트에서 이러한 테스트 유틸리티를 사용하고 싶습니다. 프로덕션 코드의 경우 종속성을 선언했기 때문에 작동합니다. 그러나 종속성이 테스트에 적용되지 않는 것 같습니다. 테스트를 실행할 때 누락 된 클래스에 대한 컴파일 오류가 발생합니다. 이러한 클래스는 핵심 프로젝트의 테스트 코드에서 가져온 것입니다.

종속성에 테스트 범위에 대한 테스트 코드도 포함되어야한다고 sbt에 어떻게 알릴 수 있습니까? 그래서 '확장'프로젝트의 테스트 코드에서 모의를 재사용 할 수 있습니까?


이렇게 :

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

이는 Getting-Started-Multi-Project 가이드의 "Per-configuration classpath dependencies"섹션에서 설명합니다 .


.dependsOn(coreProject % "compile->compile;test->test")초기 프로젝트 선언 이후에도 이를 수행 할 수 있습니다 .

lazy val coreProject = Project("core-project")
lazy val extensions = Project("extensions").dependsOn(coreProject % "compile->compile;test->test")

참고 URL : https://stackoverflow.com/questions/8193904/sbt-test-dependencies-in-multiprojects-make-the-test-code-available-to-dependen

반응형