在IntelliJ中无法运行JUnit测试

9
我想使用TDD开始这个项目。我创建了测试目录,后来将其更改为与src目录集成的包。但是在两种情况下,我都遇到了相同的错误:
“未找到类:“tests.objectsTest””
我尝试了不同的导入JUnit jar技术,但没有解决问题。我还尝试重命名我的测试类,但它根本没有解决问题。
看起来IntelliJ或JUnit更改了测试类的名称。难道它不应该是“objectsTest.tests”吗?
我正在使用JUnit版本4.12和最新的IntelliJ EAP。
这是我的项目结构:
项目:
-.idea
-src
  -logic
  -objects
-tests
  -test
   -test.java

src和tests是被标记为源代码和测试的目录。除了test之外,每个包都是空的。在我的另一台装有IntelliJ Community Edition的电脑上,一切都运行良好,但在EAP上却存在这个错误。不幸的是,我必须使用EAP。

test.java代码:

package test;

import org.junit.Test;

public class test {

    @Test
    public void canCreateInhabitant(){

    }
}

请发布您的测试类,包括包信息。 - Davide Lorenzo MARINO
我已经编辑了这个问题。 - wizzle
起初我以为将大写字母可能会解决问题(遗憾的是我忘记了一开始这么做...)。匹配类名也不行。 - wizzle
尝试将你的类命名为FooTest或其他名称,以排除与名称相关的问题。你的项目中似乎有一个名为objectTest的对象。也许你的运行配置尝试使用一个缺失的类? - atamanroman
在写最后一条评论之前,我将测试类重命名为ObjectTests,因此命名不是问题。没有任何名为objectTest的东西。我创建了一个空项目,现在objects包中只有Object.java,而test目录中有ObjectTest。 - wizzle
显示剩余5条评论
7个回答

8

您是否检查了JUnit插件是否已启用?我曾经(愚蠢,感到惭愧!)在某个时候禁用了它,直到我记得重新启用插件之前,无法让IDEA运行我的测试...


我不知道为什么,但在我的IntelliJ Community 2020升级中,JUnit插件默认被禁用了。我去了文件>设置>插件,勾选了JUnit旁边的框,并使我的测试运行按钮正常工作。谢谢! - Abhijeet Singh

2

检查您的类所在的根目录。它必须被标记为源(用于Java类)或测试(用于Java测试类)。

似乎在IntelliJ中没有正确标记您的目录。


目录src被标记为源代码(默认情况下),现在我已经将测试类导出到标记为测试的“test”目录。仍然存在相同的问题。 - wizzle

1

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

这是最简单的测试,但它非常有效,在测试类中按下shift+ctrl+t即可运行测试。

请随意克隆并尝试。


正如我所想,它不起作用。我的私人代码也不起作用。我开始认为这是IDE的问题。 - wizzle

0

我刚刚遇到了这个问题。当我通过Maven构建时,出现了问题。当我解决了问题后,它会再次运行junit测试。真是太傻了。


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

0

最简单的方法是:

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

这个自动生成的东西并不能解决问题。我一直都是自己创建测试的。 - wizzle
@wizzle:尝试将你的测试类从该目录中移除,并按照上述方法重新生成它。这次指定你的“test”目录,看看已经编写好的测试类的名称。 - tom
如果您有灵活性,可以尝试使用TestNG(TestNG在内部使用JUnit)。 - tom

-1

我曾经遇到过同样的问题,我通过点击“文件”->“无效缓存”和“无效重启”来解决它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接