2016-04-26 81 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" 
) 
相關問題