2012-10-31 34 views
12

自從我開始此項目以來,我使用JUnit並且一切正常。我有幾百次測試,當然,我在這裏和那裏開始他們。右鍵單擊根測試文件夾,使用JUnit運行(或調試)。 但是從昨天開始,當我這樣做,其結果是:Intellij IDEA sudenly將無法識別測試文件夾中的測試

Process finished with exit code 0 

沒有開始任何的測試。與文件夾樹中的任何文件夾一樣。我仍然可以運行一個測試課程,但我真的需要一個選項來啓動它們。 如果您有任何想法,請將它們放在這裏。

這是當我嘗試運行測試,哪些將記錄:

2012-10-31 15:16:55,693 [2727217] ERROR - ij.psi.impl.source.PsiFileImpl - IntelliJ IDEA 11.1.2 Build #IU-117.418 
2012-10-31 15:16:55,693 [2727217] ERROR - ij.psi.impl.source.PsiFileImpl - JDK: 1.6.0_31 
2012-10-31 15:16:55,693 [2727217] ERROR - ij.psi.impl.source.PsiFileImpl - VM: Java HotSpot(TM) Client VM 
2012-10-31 15:16:55,693 [2727217] ERROR - ij.psi.impl.source.PsiFileImpl - Vendor: Sun Microsystems Inc. 
2012-10-31 15:16:55,693 [2727217] ERROR - ij.psi.impl.source.PsiFileImpl - OS: Windows 7 
2012-10-31 15:16:55,693 [2727217] ERROR - ij.psi.impl.source.PsiFileImpl - Last Action: RunClass 
2012-10-31 15:16:55,693 [2727217] ERROR - m.intellij.util.ExecutorsQuery - com.intellij.psi.tree.IFileElementType cannot be cast to com.intellij.psi.tree.IStubFileElementType 
java.lang.ClassCastException: com.intellij.psi.tree.IFileElementType cannot be cast to com.intellij.psi.tree.IStubFileElementType 
    at com.intellij.psi.impl.source.PsiFileImpl.calcStubTree(PsiFileImpl.java:976) 
    at com.intellij.psi.stubs.StubIndexImpl$1.perform(StubIndexImpl.java:239) 
    at com.intellij.psi.stubs.StubIndexImpl$1.perform(StubIndexImpl.java:220) 
    at com.intellij.util.indexing.ValueContainer.forEach(ValueContainer.java:60) 
    at com.intellij.psi.stubs.StubIndexImpl.process(StubIndexImpl.java:220) 
    at com.intellij.psi.stubs.StubIndexImpl.get(StubIndexImpl.java:194) 
    at com.intellij.psi.stubs.AbstractStubIndex.get(AbstractStubIndex.java:33) 
    at com.intellij.psi.impl.java.stubs.index.JavaAnnotationIndex.get(JavaAnnotationIndex.java:47) 
    at com.intellij.psi.impl.search.AnnotatedElementsSearcher.a(AnnotatedElementsSearcher.java:93) 
    at com.intellij.psi.impl.search.AnnotatedElementsSearcher.execute(AnnotatedElementsSearcher.java:44) 
    at com.intellij.psi.impl.search.AnnotatedElementsSearcher.execute(AnnotatedElementsSearcher.java:28) 
    at com.intellij.util.ExecutorsQuery.processResults(ExecutorsQuery.java:42) 
    at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:67) 
    at com.intellij.util.InstanceofQuery.forEach(InstanceofQuery.java:54) 
    at com.intellij.execution.ConfigurationUtil.addAnnotatedMethodsAnSubclasses(ConfigurationUtil.java:97) 
    at com.intellij.execution.ConfigurationUtil.findAllTestClasses(ConfigurationUtil.java:77) 
    at com.intellij.execution.junit.TestPackage$MySearchForTestsTask.run(TestPackage.java:397) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:469) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:218) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:169) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:378) 
    at com.intellij.openapi.application.impl.ApplicationImpl$6.run(ApplicationImpl.java:434) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
    at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:145) 
+0

您的測試文件夾是否仍然設置爲測試(綠色)?你是否禁用了maven或者對它做了一些修改? – m3th0dman

+0

它仍然是綠色的,每個子文件夾圖標上都有一個小綠點。我對maven沒有任何改變。另外,從昨天開始,每次我重新啓動IDEA,atlassian連接器都會丟失當前配置,並且我需要再次添加它。 –

+0

我修復了atlassian連接器的問題,但仍然無法從文件夾運行測試... –

回答

18

OK,我固定它。

在菜單中的File下,有一個invalidate cache選項。這解決了它!

+2

此緩存選項是相當不可預知的解決方法。希望IDEA開發人員將修復案例或爲我們自動化:) –

+1

謝謝,這真的對我也有幫助! –

+0

這不適合我。 :(有沒有其他解決方案? – OverrockSTAR

8

在最新的IDE(截至Community Edition 2016.1)上,此選項更加簡化。

右鍵單擊要被承認爲一個源文件夾中的文件夾:

馬克目錄作爲 - >源根

enter image description here

+0

但如果你有多模塊項目,它真的皮塔把它設置在任何地方手動:( – chipiik

0

只需添加不同的情況下,即發生給我和我的一些同事:

Alt +在類中輸入 - > create test:IJ(2017.1.1)建議Arquillian Junit作爲測試庫的第一選項並通過與它一起創建測試類和方法,而不需要「公共」標識符。然後,如果決定將測試庫更改爲JUnit,則很容易忘記缺少「公共」標識符,這會導致測試不被IJ認可。當然,解決方案是放置'公共'標識符。

雖然這不是發生在你身上的事情,但它具有相同的結果,因此這個答案可能會幫助其他人經歷相同的症狀。