2012-10-31 14 views
12

Utilizzo JUnit da quando ho avviato questo progetto e tutto funziona perfettamente. Ho un paio di centinaia di test e, naturalmente, qui e là li avvio tutti. Fare clic con il tasto destro sulla cartella test di root, eseguire (o eseguire il debug) con JUnit. Ma da ieri, quando lo faccio, il risultato è:Intellij IDEA non riconosce i test nella cartella di test

Process finished with exit code 0 

senza avviare alcun test. La stessa cosa è con qualsiasi cartella nell'albero delle cartelle. Posso ancora eseguire una singola classe di test, ma ho davvero bisogno di un'opzione per avviarli tutti. Se qualcuno di voi ha qualche idea, per favore lasciateli qui.

Ecco cosa viene registrato quando si tenta di eseguire i test:

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

La cartella di test è ancora impostata per il test (colore verde)? Hai disabilitato l'audio o hai apportato alcune modifiche? – m3th0dman

+0

È ancora verde e su ogni icona di sottocartelle è presente un piccolo punto verde. Non ho apportato modifiche con Maven. Inoltre, da ieri, ogni volta che riavvio IDEA, il connettore atlassian perde la configurazione attuale e devo aggiungerlo di nuovo. –

+0

Risolve il problema con il connettore atlassian, ma non riesco ancora a eseguire test dalla cartella ... –

risposta

18

OK, ho riparato.

Nel menu, in File, è disponibile un'opzione di cache non valida. Questo l'ha risolto!

+2

Questa opzione della cache è una soluzione alquanto imprevedibile. spero che gli sviluppatori IDEA risolveranno i casi o li automatizzeranno per noi :) –

+1

Grazie, anche questo mi ha aiutato molto! –

+0

Questo non funziona per me. :(c'è qualche altra soluzione? – OverrockSTAR

8

Sull'ultimo IDE (a partire da Community Edition 2016.1) questa opzione è più semplificata.

tasto destro del mouse sulla cartella che si desidera essere riconosciuto come una cartella di origine:

Mark Directory As -> Sorgenti Root

enter image description here

+0

ma se hai un progetto multimodule, è davvero pita impostarlo ovunque manualmente :( – chipiik

0

Giusto per aggiungere uno scenario diverso, che è accaduto per me e alcuni dei miei colleghi:

Alt + inserisci nella classe -> crea test: IJ (2017.1.1) propone Arquillian Junit come prima opzione della libreria di test e andando con esso la classe di test e i metodi vengono creati senza l'identificatore 'pubblico'. Quindi, se si decide di cambiare la libreria di test in JUnit, è facile dimenticare l'assenza dell'identificatore "pubblico", il che fa sì che i test non vengano riconosciuti da IJ. Ovviamente, la soluzione è posizionare gli identificatori "pubblici".

Anche se questo non è quello che ti è successo ha la stessa conseguenza, quindi questa risposta può aiutare gli altri a sperimentare gli stessi sintomi.

Problemi correlati