【问题标题】:Unable to run JUnit test in IntelliJ无法在 IntelliJ 中运行 JUnit 测试
【发布时间】:2015-09-26 10:35:42
【问题描述】:

我想使用 TDD 启动项目。创建了 test 目录,后来将其更改为与 src 目录集成的包。在这两种情况下,我都会遇到相同的错误:

找不到类:“tests.objectsTest”

我尝试了不同的导入 JUnit jar 的技术,但都没有解决问题。我也尝试重命名我的测试类,但它没有提供任何解决方案。

似乎 IntelliJ 或 JUnit 更改了测试类的名称。不应该是objectsTest.tests吗?

我正在使用 JUnit 4.12 版和最新的 IntelliJ EAP。

这是我的项目结构:

项目:

-.idea
-src
  -logic
  -objects
-tests
  -test
   -test.java

src 和 tests 是标记为 Source 和 Test 的目录。除了 test 之外的每个包都是空的。在我的另一台装有 IntelliJ 社区版的 PC 上,一切正常,但在 EAP 上存在这个错误。不幸的是,我必须使用 EAP。

test.java 代码:

package test;

import org.junit.Test;

public class test {

    @Test
    public void canCreateInhabitant(){

    }
}

【问题讨论】:

  • 发布你的测试类并附上包信息。
  • 检查你的外壳。 java 文件名必须与类名完全匹配(包括大小写)。这有时在 Windows 上是个问题,因为文件系统不区分大小写,但编译器不区分大小写。提示:类名通常以大写开头。
  • 我已经编辑了问题。
  • 起初我认为大写可能会解决问题(可惜我一开始忘了这样做......)。匹配类名也不起作用。
  • 尝试将您的班级命名为FooTest 或其他名称,以排除与您的命名相关的问题。您项目中的某些内容似乎被命名为objectTest。也许您的运行配置尝试使用缺少的类?

标签: java testing intellij-idea junit


【解决方案1】:

检查类的根目录。它必须标记为源(对于 java 类)或测试(对于 java 测试类)。

您的目录在 IntelliJ 中似乎没有很好地标记。

【讨论】:

  • 目录 src 被标记为源(默认情况下),现在我已将测试类导出到标记为测试的“test”目录。还是同样的问题。
【解决方案2】:

最简单的方法是:

  • 在 Intellij 中打开类并按 Ctrl+Shift+T
  • 选择“创建新测试”
  • 现在,将打开一个新的弹出窗口,您可以在其中选择单元测试库(对于您的情况,它是 Junit4)
  • 选择要包含在测试中的方法
  • 你去吧!

【讨论】:

  • 这个自动生成的东西并不能解决问题。我一直自己创建测试。
  • @wizzle:尝试从该目录中删除您的测试类并通过上述方法重新生成它。这次指定您的“测试”目录并查看已经编写的测试类的名称。
  • 如果你有灵活性的话试试TestNG(TestNG内部使用JUnit)
【解决方案3】:

我做了一个简单的测试,放在github上。

这是最简单的测试,但效果很好,站在测试类中按 shift+ctrl+t 将运行测试.

继续克隆它并尝试一下。

【讨论】:

  • 正如我所想,它不起作用。我的私人代码都不起作用。我开始认为这不是 IDE 问题。
【解决方案4】:

您是否检查过是否启用了 JUnit 插件?我(愚蠢,可耻!)在某个时候禁用了它,并且无法让 IDEA 运行我的测试,直到我记得重新打开插件......

【讨论】:

  • 我不知道为什么,但由于某种原因,JUnit 插件在我的 IntelliJ Community 2020 升级中默认被禁用。转到File > Settings > Plugins,选中 JUnit 旁边的框,让我的测试运行按钮正常工作。谢谢!
【解决方案5】:

有时我发现当我尝试从结构视图中的项目文件夹启动“所有测试”时会发生这种情况。通过右键单击测试根文件夹并从那里选择“所有测试”来启动所有测试似乎可以解决它。

【讨论】:

    【解决方案6】:

    这件事发生在我身上。当我通过 Maven 构建时,它遇到了问题。当我解决问题时,它会再次运行junits。高飞。

    【讨论】:

      【解决方案7】:

      我遇到了同样的问题,我通过点击 File-> Invalidate chaces 和 Invalidate an Restart 解决了这个问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-03
        • 1970-01-01
        相关资源
        最近更新 更多