Djo*_*vic 26 java junit intellij-idea
自从我开始这个项目以来,我正在使用JUnit,一切正常.我有几百个测试,当然,我在这里和那里开始.右键单击根测试文件夹,使用JUnit运行(或调试).但是从昨天开始,当我这样做时,结果是:
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)
没有开始任何测试.文件夹树中的任何文件夹都是一样的.我仍然可以运行一个测试类,但我真的需要一个选项来启动它们.如果您有任何想法,请将它们放在这里.
以下是我尝试运行测试时记录的内容:
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)
Run Code Online (Sandbox Code Playgroud)
Djo*_*vic 36
好的,我修好了.
在菜单中的"文件"下,有一个invalidate cache选项.修好了!
Вла*_*ник 26
出于某种原因,Intellij Idea 不会将类识别为未明确公开的测试类,如果类具有默认访问规范,则不会将其标记为测试。尝试更改课程以满足此规则。例子:
public class TestMe {
@Test
public void shouldTest(){
Assert.assertEquals("test", "test");
}
}
Run Code Online (Sandbox Code Playgroud)
LeT*_*Tex 25
在最新的IDE(从Community Edition 2016.1开始)中,此选项更加简化.
右键单击要识别为源文件夹的文件夹:
将目录标记为 - >源根
只是添加了一个不同的场景,这发生在我和我的一些同事身上:
在类中的Alt + enter->创建测试:IJ(2017.1.1)提出将Arquillian Junit作为测试库的第一个选项,并与之一起创建没有'public'标识符的测试类和方法。然后,如果决定将测试库更改为JUnit,则很容易忘记缺少“公共”标识符,这会导致IJ无法识别测试。当然,解决方案是放置“公共”标识符。
尽管这不是发生在您身上的结果,但它具有相同的结果,因此,此答案可能会帮助其他经历相同症状的人。
| 归档时间: |
|
| 查看次数: |
37577 次 |
| 最近记录: |