2012-10-31 10 views
12

Używam JUnit od momentu rozpoczęcia tego projektu i wszystko działa dobrze. Mam kilkaset testów i oczywiście tu i tam zaczynam wszystko. Kliknij prawym przyciskiem myszy na folderze testowym root, uruchom (lub debuguj) przy pomocy JUnit. Ale od wczoraj, kiedy to zrobić, wynik jest:Intellij IDEA sudenly nie rozpozna testów w folderze testowym

Process finished with exit code 0 

bez rozpoczęciem testów. To samo dotyczy dowolnego folderu w drzewie folderów. Wciąż mogę uruchomić jedną klasę testową, ale naprawdę potrzebuję opcji, aby uruchomić wszystkie. Jeśli którykolwiek z was ma jakieś pomysły, proszę je upuścić tutaj.

Oto co jest rejestrowane, gdy próbuję uruchomić testy:

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

Czy twój folder testowy nadal jest ustawiony na test (kolor zielony)? Czy wyłączyłeś maven lub wprowadziłeś jakieś zmiany? – m3th0dman

+0

Jest nadal zielony, a każda ikona podfolderów ma mały zielony punkt. Nie zrobiłem żadnych zmian z mavenem. Ponadto, od wczoraj za każdym razem, gdy ponownie uruchamiam IDEA, atlasowa luźna konfiguracja prądu i muszę go jeszcze raz dodać. –

+0

Naprawiam problem ze złączem atlasowym, ale nadal nie mogę uruchomić testów z folderu ... –

Odpowiedz

18

OK, naprawiłem go.

W menu, w opcji Plik istnieje opcja unieważnionego bufora podręcznego. To naprawiło to!

+2

Ta opcja pamięci podręcznej jest dość nieprzewidywalnym obejściem. Miej nadzieję, że programiści IDEA naprawią je lub zautomatyzują za nas :) –

+1

Dzięki, to też mi pomogło! –

+0

To nie działa dla mnie. :(czy jest jakieś inne rozwiązanie? – OverrockSTAR

8

Na najnowszym IDE (od wersji Community Edition 2016.1) ta opcja jest bardziej uproszczona.

prawym przyciskiem myszy na folder, który chcesz zostać rozpoznane jako folder źródłowy:

Mark Directory jako -> Źródła głównej

enter image description here

+0

, ale jeśli masz projekt multimodułu, to naprawdę pita ustawić go wszędzie ręcznie :( – chipiik

0

Wystarczy dodać inny scenariusz, co się stało dla mnie i niektórych moich współpracowników:

Alt + wpisz w klasie -> stwórz test: IJ (2017.1.1) proponuje Arquilliana Junita jako pierwszą opcję testowania biblioteki i przechodząc z nim klasa testowa i metody są tworzone bez "publicznego" identyfikatora. Jeśli zdecydujesz się zmienić bibliotekę testową na JUnit, łatwo zapomnieć o braku "publicznego" identyfikatora, co powoduje, że testy nie zostaną rozpoznane przez IJ. Oczywiście rozwiązaniem jest umieszczenie "publicznych" identyfikatorów.

Chociaż to nie jest to, co się z tobą stało, ma tę samą konsekwencję, dlatego ta odpowiedź może pomóc innym doświadczać tych samych objawów.

Powiązane problemy