2014-01-13 51 views
6

這很令人費解。我有一個使用Gradle構建的多模塊polyglot JVM項目。我有幾個Java模塊和一對Scala模塊。 Scala模塊使用ScalaTest作爲測試框架。我設置Gradle使用scalatest plugin來運行測試。我在IntelliJ上運行了大約一個月的所有東西(使用Gradle創意插件)。現在一下子ScalaTest規範將無法從IDE了,下面的錯誤運行:Gradle,IntelliJ和ScalaTest插件:突然打破

Unable to load a Suite class. This could be due to an error in your runpath. Missing class: com.mypackage.MySpec 

有誰知道這是怎麼回事?我不確定自第一次設置我的構建文件以來可能會有什麼變化。這真令人沮喪。想法?

編輯:顯然我的junit測試不會運行。看起來編譯的類不在Intellij使用的類路徑上。這是我所得到的,如果我嘗試JUnit測試用例運行:

Class not found: "com.mypackage.MyUnitTests" 

回答

1

想通了。我在this blog post之後搞亂了我的IntelliJ配置文件,並且意外地搞亂了我的項目輸出文件夾(在updateBuildOutputFolderForGradle函數中),這樣IntelliJ無法在運行時找到這些類。

2

有機會,因爲這是一個多語言項目的IntelliJ分不清哪個是源文件夾。檢查Project Structure>Modules(您的每個模塊)並確保SourcesTests dirs已正確標記。

+0

OP正在使用Gradle,因此設置源文件和測試目錄應該在'build.gradle'中完成,而不是在IntelliJ的'Project Structure'屏幕中,因爲只要您重新導入Gradle項目,這些設置將會被你的'build.gradle'中的任何東西覆蓋。 – sversch