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

Scala 在Intellij上运行测试:未找到类,scala,intellij-idea,gradle,Scala,Intellij Idea,Gradle,我正在评估IntelliJ(13.0.2 133.696),无法从IDE中运行jUnit测试 我的项目是一个多模块的gradle项目,使用scala 测试类位于src/Test/scala/xxx/xxxxx/xxx/xxxxx/xxxxx下,每次尝试从IDE运行时都会出现相同的错误: Class not found: "xxx.xxxxx.xxx.xxxx.xxxxx.AccountRepositoryTest" 测试类并不是什么新奇的、简单的jUnit测试: @RunWith(classO

我正在评估IntelliJ(13.0.2 133.696),无法从IDE中运行jUnit测试

我的项目是一个多模块的gradle项目,使用scala

测试类位于src/Test/scala/xxx/xxxxx/xxx/xxxxx/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 {
我发现了一个相关问题,但提供的修复程序(升级到13.0.2)不起作用


我甚至尝试升级到最新的EAP,但仍然存在相同的问题。

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

同时,您的模块必须有一个Scala方面,并且该类必须位于
“测试源文件夹”。

我遇到了同样的问题,在我的例子中,问题是由于“项目编译器输出”路径在项目设置中留空


为了修复它,我在我的项目根目录中创建了一个
classes
目录,并将
project compiler output
设置为绝对路径(使用
按钮浏览)。

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

我也有同样的问题。我在模块设置->模块->路径->测试输出路径中为我的测试类字节码目录更改了一个路径(排除上的输出路径)。现在一切都好了

转到项目设置->项目

填写项目编译器输出: 示例D:\repo\Project\out

转到模块->路径

确保:

输出路径类似于D:\repo\Project\out\production

测试输出路径,如D:\repo\Project\out\test


应该有用

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

对我来说,修复正在从继承的项目编译路径转变为使用模块编译输出路径

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


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

我浏览了其中的一些答案,对项目设置大惊小怪,尝试了一些东西,等等,但都没有效果。(完全披露:我不是想在这里摆弄Gradle;我只是在使用Maven,但我不知道这与Gradle有什么关系。)

我用的是创意14

我发现有效的是,因为IntelliJ似乎迷失了方向,这是:

$ rm -rf .idea project-name.iml
然后重新启动IntelliJ并执行文件->打开->导航到我的项目根目录等操作——简而言之,就是重新创建我的项目


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 restart为我解决了这个问题。

简单的“构建>重建项目”对我有效。

也有同样的问题,通过在完整路径中没有空格、冒号、句点或其他特殊字符的目录路径中重新创建项目来修复。显然IntelliJ对项目路径很挑剔。

在构建、清理和重建、关闭和打开项目(使用IntelliJ)之后,我的问题仍然存在,项目编译器输出是正确的;最后,我只是从我的项目目录中删除了这个文件夹。请注意,我的问题只是关于新添加的Junit调用新添加的方法。其余的Junits运行良好。

对我来说,一个测试失败了,错误误导了我

因此:

  • 我将intellij中的模块作为独立项目重新导入
  • 运行测试
  • 修复测试问题
  • 再次运行模块,它就开始工作了
    自gradle项目X起,删除以下两项:

    • X/构建
    • X/输出
    再次运行测试帮助我解决了这个问题;医生: 缺少文件扩展名可能导致此错误

    详细信息:

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

    • 很难找到,IDE中的一切看起来都很正常 (显然IntelliJ使用文件内容来显示 相应的符号)
    • 只要我使用命令行中的
      mvn
      (在pom.xml中启用了surfere插件)或专用的maven启动器配置,这就不是问题,但导致 使用IntelliJs测试或覆盖率菜单/按钮启动时的初始错误消息
    • 当我添加缺少的文件结尾时,一切都正常工作

    按以下顺序尝试:

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

    Spring JUnit和Scala库应该在类路径中。刷新gradle项目解决了这个问题。我为此注册了一个bug。请投票!如果在“项目编译器输出”中键入了无效的内容,也可能发生这种情况