在 Intellij 上运行测试: 未找到类

我正在计算 IntelliJ (13.0.2133.696) ,但无法在 IDE 中运行 jUnit 测试。

我的项目是一个多模块级别的项目,并使用 Scala。

测试类位于 src/Test/scala/xxx/xxxxx/xxx/xxxx/xxxx/xxxxx 下,每次我尝试从 IDE 运行时都会得到相同的错误:

Class not found: "xxx.xxxxx.xxx.xxxx.xxxxx.AccountRepositoryTest"

测试类没什么特别的,简单的 jUnit 测试:

@RunWith(classOf[SpringJUnit4ClassRunner])
@ContextConfiguration(classes = Array(classOf[DataConfig], classOf[SettingsConfig]))
class AccountRepositoryTest extends AssertionsForJUnit {

我发现了一个相关的问题 无法从 IDEA 13.0 IDE 为导入的分级项目运行 Junit 测试,但提供的修复程序(升级到13.0.2)不起作用。

我甚至尝试升级到最新的 EAP,仍然是同样的问题。

126991 次浏览

检查该测试的 Run/Debug 配置 “使用类路径和 SDK 的模块:”应该指向您的模块。

与此同时,模块必须有一个 Scala facet,并且该类必须位于 “测试源文件夹”。

我也有同样的问题,在我的案例中,问题是由于“项目编译器输出”路径在“项目设置”中被留空。

Project Structure configuration screen

为了解决这个问题,我在项目根目录中创建了一个 classes目录,并将 Project compiler output设置为绝对路径(使用 按钮浏览)。

确保您的测试类包和您为其编写测试用例的类不相同。如果测试用例和类具有相同的包,编译器将查看 src 文件夹并忽略测试文件夹。

我也有同样的问题。我在 Module Settings-> Module-> Path-> Test output path 中为测试类字节码(排除输出路径 on)更改了目录中的路径。现在一切都正常了!

转到“项目设置”-> “项目”。

填写项目编译器输出: 回收项目结束

进入模组-> 路径

确保:

输出路径类似 D: 回收项目输出生产

测试输出路径如 D: 回购项目输出测试

应该可以!

我也有同样的问题,Intellij 没有找到 Test 输出路径,但是运行常规应用程序没有问题。

对我来说,修复程序从继承的项目编译路径改为使用模块编译输出路径。

项目设置-> 模块-> (您的模块)-> 路径(选项卡)

将单选按钮更改为“使用模块编译输出路径”。对于我来说,自动填写的建议起作用了,如果自动填写的建议不起作用,您可能需要手动放入正确的测试输出路径。记住应用设置更改。

我浏览了其中的一些答案,对项目设置感到困惑,尝试了一些事情,等等,但都没有用。(充分披露: 我并不是要在 Gradle 这个问题上耍花招,我只是在使用 Maven,但是我不明白这和 Gradle 有什么关系。)

我用的是 IDEA 14。

我发现,因为 IntelliJ 似乎已经迷失了方向,所以我的工作是这样的:

$ rm -rf .idea project-name.iml

然后重新启动 IntelliJ,并执行 File-> Open-> 导航到我的项目的根目录,等等——简而言之,就是重新创建我的项目。

IntelliJ 已经克服了。我可能最初在这个项目中搞砸了一些事情,因为我已经做了大量的重构包和类的名称,我甚至改变了项目的名称。(这可能是我的错。)

您可以尝试使缓存失效并重新启动。这通常会在您添加新的依赖项/类时解决问题。

只要在 Intellij IDEA 将测试文件的文件夹标记为测试文件夹就可以了。这招对我管用。 如果有多个目录中的源文件具有相同的名称,则将包添加到类源文件中(如果不存在) !

修改模块的.iml 文件标记中的内容,如下所示。

<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>

IDEA 的重启为我解决了这个问题。

简单的“构建 > 重建项目”就可以了。

遇到同样的问题,通过在目录路径中重新创建项目来解决,该目录路径在完整路径中的任何位置都没有空格、冒号、句点或其他特殊字符。显然 IntelliJ 对项目路径很挑剔。

在构建、清理和重新构建、关闭和打开项目(使用 intellij)之后,我的问题仍然存在,项目编译器的输出是正确的; 最后我只是从我的项目目录中删除了该文件夹。注意,我的问题只是在新添加的 Junit 调用一个新添加的方法上。其余的 Junit 工作得很好。

对我来说,这是一个测试失败和错误是误导。

所以:

  1. 我将 intellij 中的模块作为独立项目重新导入
  2. 测试一下
  3. 解决测试问题
  4. 再次运行模块,它就开始工作了。

至于等级项目 X,删除两者:

  • X/build
  • X/out

再次运行测试帮助我解决了这个问题。

医生: 缺少文件扩展名可能导致此错误。

详情:

在我的例子中,测试类缺少 .java扩展 文件名为 UserTest而不是 UserTest.java

  • 很难找到,从 IDE 内看一切都正常 (显然 IntelliJ 更愿意使用文件内容来显示 相应的符号)。
  • 只要我从命令行使用 mvn(在 pom.xml 中启用 surfire 插件)或专用的 maven 启动程序配置,就不会出现问题,但是会导致 使用 IntelliJ 测试或覆盖菜单/按钮启动时的初始错误消息。
  • 一切工作正常,一旦我添加了缺失的文件结束。

按以下顺序试试:

  • 重建项目(+ 奇怪,选择另一个应用程序,重新选择上下文切换的想法,似乎强制文件重新加载? !)
  • 使缓存/重新启动的想法失效
  • 重新导入项目/创建新项目

只要将文件重命名为不同的名称,然后返回就可以了:)