2016-04-26 48 views
0

我有一个为Scalatest 1.x编写的测试项目,它使用ShouldMatchers类,该版本在版本2.x中已弃用。展望未来,我想使用第2版进行新的测试,但这意味着我必须重构所有现有的测试(我可以这样做,但这需要一些时间)。SBT - 在单个项目中使用两个版本的库?

与此同时,SBT中是否有一种方法可以针对Scalatest 1.x编译现有的类,以及针对Scalatest 2.0的新类?

或者更一般地说,在一个项目中针对不同版本的库编译一些类到其他类? (我知道这可能是一个相当可怕的想法。)

+0

我认为这会弄乱班级路径。你不能为这两种类型的测试创建两个子项目吗? –

+0

在同一个项目中?你不能。只在不同的项目中。虽然 –

+0

这个问题不是IDE的问题,但是类路径之一,又名依赖地狱 – cchantep

回答

2

您可以创建两个相关的子项目,每个版本的scala-test一个。

lazy val root = project.in(file(".")) 

lazy val oldTests = project.in(file("old-tests")) 
    .dependsOn(root) 
    .settings(
    libraryDependencies += "org.scalatest" %% "scalatest" % "1.9.1" % "test" 
) 

lazy val newTests = project.in(file("new-tests")) 
    .dependsOn(root) 
    .settings(
    libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "test" 
) 
相关问题