2013-12-22 41 views
1

我有一個包含一些java模塊和一個android模塊的Gradle項目。每件事似乎都能正常工作,該項目將在Android設備上進行構建和部署。 但是,我有一個主要問題。正如我在爲TDD使用IDEA一樣。我必須像往常一樣從IDE運行單元測試,但總會收到一條錯誤消息:Class not found:「[full.class.name]」無法從IDEA 13.0 IDE運行導入的Gradle項目的Junit測試

- > with dynamic.classpath = true:生成的命令是:

C:\Program Files\Java\jdk1.7.0_17\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.0\bin" -classpath "C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.0\lib\idea_rt.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.0\lib\util.jar" -Dfile.encoding=UTF-8 com.intellij.rt.execution.CommandLineWrapper C:\Users\[UserName]\AppData\Local\Temp\classpath9127004204172317095.tmp com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 [full.class.name] 

Class not found: "[full.class.name]" 
Process finished with exit code 1 

- >隨着dynamic.classpath = FALSE:命令是:

"C:\Program Files\Java\jdk1.7.0_17\bin\java" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.0\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.0\lib\idea_rt.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.0\plugins\junit\lib\junit-rt.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\zipfs.jar;C:\Users\[UserName]\.gradle\caches\artifacts-26\filestore\junit\junit\4.11\jar\4e031bb61df09069aeb2bffb4019e7a5034a4ee0\junit-4.11.jar;C:\Users\[UserName]\.gradle\caches\artifacts-26\filestore\org.hamcrest\hamcrest-core\1.3\jar\42a25dc3219429f0e5d060061f71acb49bf010a0\hamcrest-core-1.3.jar;C:\Users\[UserName]\.gradle\caches\artifacts-26\filestore\org.apache.commons\commons-lang3\3.1\jar\905075e6c80f206bbe6cf1e809d2caa69f420c76\commons-lang3-3.1.jar;C:\Users\[UserName]\.gradle\caches\artifacts-26\filestore\javax.inject\javax.inject\1\jar\6975da39a7040257bd51d21a231b76c915872d38\javax.inject-1.jar;C:\Users\[UserName]\.gradle\caches\artifacts-26\filestore\org.objenesis\objenesis\1.0\jar\9b473564e792c2bdf1449da1f0b1b5bff9805704\objenesis-1.0.jar;C:\Users\[UserName]\.gradle\caches\artifacts-26\filestore\org.mockito\mockito-core\1.9.5\jar\c3264abeea62c4d2f367e21484fbb40c7e256393\mockito-core-1.9.5.jar" com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 [full.class.name] 

Class not found: "[full.class.name]" 
Process finished with exit code 1 
+0

你如何從IDEA運行單元測試? – kukido

+0

在測試類編輯器中點擊ctrl + shift + T或右鍵單擊項目結構視圖中的單元測試文件,然後單擊運行 –

回答

2

Jetbrains的支持團隊向我證實這是一個重大的錯誤,應由下一個版本13.0.1解決。發佈日期尚未定義。

該問題是由Android-Gradle項目引起的。

+0

自EAP以來,這讓我感到非常緊張。任何問題的鏈接? –

+0

作爲解決方法,我通過gradle任務啓動junit。 –

+0

@AndreasPetersson http://youtrack.jetbrains.com/issue/IDEA-117676 –

1

當我沒有把我的Java代碼放在預期的默認位置:src/main/java和src/test/java中時,我得到了同樣的錯誤。一旦我解決了這個問題,我就可以從IDEA或命令行運行測試。

2

在從IDEA運行測試之前,只需通過從Gradle運行「乾淨」任務來調用清理。希望這可以幫助。

+0

這對我來說也是如此 - 儘管我不明白爲什麼gradle clean會幫助Idea的課堂發現。 –

相關問題