为什么IntelliJ IDEA的突然不承认在测试文件夹测试了吗?(Why does Intelli

2019-08-02 03:50发布

我使用JUnit,因为我开始这个项目,一切工作就好了。 我有一对夫妇的数百个测试,当然,在这里和那里我开始了他们。 右键点击根test文件夹,运行(或调试)使用JUnit。 不过从昨天开始,当我这样做,其结果是:

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)

Answer 1:

OK,我固定它。

在菜单中,根据文件,有一个无效的缓存选项。 问题解决了!



Answer 2:

在最新的IDE(如社区版2016.1的)这个选项是更加简化。

右键点击要被承认为一个源文件夹的文件夹:

马克目录作为- >源根



Answer 3:

我想补充一个不同的情况下,这发生在我和我的一些同事:

在类Alt + Enter键 - >创建测试:IJ(2017年1月1日)提出的Arquillian作为Junit的测试库的第一个选项,并用它去测试类和创建方法没有“公共”标识。 然后,如果一个决定改变测试库JUnit的,很容易对缺乏的“公众”标识,这会导致不被IJ认可的测试给忘了。 当然,解决办法是把“公共”的标识符。

虽然这不是发生了什么事,你有同样的结果,因此这个答案可以帮助其他遇到相同的症状。



Answer 4:

在我而言,我不得不:

  • 关闭项目
  • 打开的build.gradle文件
  • 覆盖现有的项目? 是
  • 右键点击项目
    • 马克目录> Resources Root


Answer 5:

由...打开文件这个固定的几次 - >项目结构。 在那里,看左侧菜单最后一项有“问题”的数量(如果有更多的接零)上。 点击这些,然后针对每个问题以红色突出显示在模块/库的IntelliJ,删除它们(减按钮)。 因为的IntelliJ不能让出来的结构,他们将获得类似“test1..23”模块名。 删除所有标记为红色,接近+重启后的IntelliJ。 不要运行Maven刷新在这个阶段,因为它会再次重新推出同样的错误。 通过重新启动的IntelliJ将触发该项目的一个新的扫描 再次结构。



Answer 6:

如果您使用的是IntelliJ测试执行和调试,但不能进行编辑。 您的其他编辑/ IDE可以用的IntelliJ来争夺在生成的文件控制( *.class ) -造成的IntelliJ报告说, 没有测试发现 (也许太虚假构建错误)。

在我的情况下,Visual Studio代码似乎有这样的效果(最近更新后,这两个工具)。

我已经找到解决的办法是关闭Visual Studio代码 ,然后清洗与重建的IntelliJ或命令行的项目。 。换句话说,我的双IDE工作流程不再适用 - 所以我在的IntelliJ编辑。



Answer 7:

在我的情况,我们从JUnit 4中移动的JUnit 5和我是混合性@Test他们。

简而言之:

  • 如果你使用@RunWith() JUnit 4中,你必须使用@org.junit.Test标注的测试方法。
  • 如果你使用@ExtendWith()的JUnit 5,你必须使用@org.junit.jupiter.api.Test代替。

当我改变了进口,我的类可以作为测试类再次运行。



文章来源: Why does Intellij IDEA suddenly not recognize tests in test folder anymore?