【问题标题】:Testing Java code with Groovy under Intellij: unable to resolve class GroovyTestCase在 Intellij 下使用 Groovy 测试 Java 代码:无法解析类 GroovyTestCase
【发布时间】:2015-02-05 02:18:55
【问题描述】:

我需要为一些 Java 代码编写一个简短的测试。我用 CTRL+SHIFT+T 用 IntelliJ 生成一个,并选择“Groovy JUnit”作为测试库,然后编写如下测试:

package util
class FibonacciHeapTest extends GroovyTestCase {
    FibonacciHeap<Integer> heap

    void setUp() {
        super.setUp()
        heap = new FibonacciHeap<>()
    }

    void testAddInOrder() {
        testForItems 1..1000
    }


    private void testForItems(Range<Integer> items) {
        items.each {heap << it}
        assertEquals heap.size, items.to
        items.each {assertEquals heap.remove(), it}
    }
}

但是,当我在项目窗口中右键单击测试用例时,我没有得到我通常使用 JUnit 测试执行的“运行所有测试”选项,并且编译器会抛出以下错误:

Information:2/4/15 8:15 PM - Compilation completed with 2 errors and 0 warnings in 2 sec
/home/patrick/IdeaProjects/hackerrank/src/test/java/util/FibonacciHeapTest.groovy
Error:(3, 1) Groovyc: unable to resolve class util.FibonacciHeap
Error:(9, 1) Groovyc: unable to resolve class GroovyTestCase

尝试手动导入 GroovyTestCaseFibonacciHeap 会导致相同的错误。当我让自动完成为我完成名称时,IntelliJ 不会添加任何导入语句,就像通常使用 Java 代码一样。

我做错了什么?

【问题讨论】:

  • 不应该是groovy/util/...吗?
  • @cfrick 该项目使用 Java。 src/test/java被标记为测试目录,我正在测试的类是util.FibonacciHeap
  • 这可能取决于您的设置。但是 a) 放置 groovy 文件的常规位置是 src/(main|test)/groovy/package/class.(java|groovy) 和 b) 如果 groovy (或 intellij) 找不到你的东西,包/目录和/或文件/类名有问题

标签: java groovy intellij-idea junit


【解决方案1】:

这对我有用:

  • 打开 Gradle 窗口(在我的情况下位于右侧)
  • 点击刷新按钮
  • 完成

【讨论】:

  • 如何让 Gradle 在普通 IntelliJ 版本中打开?
  • @Christian我不知道,我只用Androdi Studio
【解决方案2】:

我在 IntelliJ 中创建测试类时遇到了类似的问题,当在 com.company 文件夹(我有我想要测试的类)之外创建一个新目录时解决了这个问题。

  1. 在与 src 文件夹相同的级别上为测试类创建一个新目录
  2. 右键单击你的新测试目录,“将目录标记为”-->“测试资源根目录”
  3. 现在创建一个测试类,它应该会自动添加到您的测试目录中。

【讨论】:

    【解决方案3】:

    Build -> 在 IDE 本身中重建项目(在我的例子中,与 maven 不同)为我完成了它。

    【讨论】:

      【解决方案4】:

      就我而言,解决问题的方法相当简单。

      • 关闭 IntelliJ
      • 打开附件主页...
      • 点击x 删除您的项目,然后...
      • 点击Import Project,导航到你项目的build.graddle文件并打开。

      就是这样,所有的红色突出显示都消失了。

      【讨论】:

        【解决方案5】:

        您必须先配置 Groovy SDK。看截图

        更详细的说明见官方文档:Configuring Global, Project and Module SDKs

        【讨论】:

        • 我如何到达那里?当我到达那里时会发生什么?这个答案应该更彻底
        • 我也收到此错误(groovyc:无法解析类 groovy.util.GroovyTestCase)并将 groovy-all:2.4.3 添加到依赖项(如上所述)没有帮助。
        • 我通过将junit jar添加到除了groovy jar之外的依赖项来解决它
        • Groovy 是一个库,而不是 IntelliJ 中的 SDK。 JDK 应设置为 SDK,groovy 应设置为库依赖项(如屏幕截图所示)。
        【解决方案6】:

        正如@sman591 在评论中指出的那样,如果您遇到错误:

        groovyc: unable to resolve class groovy.util.GroovyTestCase
        

        如果你已经将 groovy 作为依赖项,那么你可能只是缺少 junit 依赖项。

        【讨论】:

          【解决方案7】:

          在 IntelliJ IDEA 中,我重新导入了项目。那时它奏效了。 我关闭了想法。我删除了项目中的.idea 文件夹。然后我导入了项目。

          然后我需要设置 Groovy,查看之前的答案,在我的项目的所有模块中将测试目录标记为测试源。

          【讨论】:

            【解决方案8】:

            我选择了包含build.gradle 文件的根文件夹,但它不起作用。

            所遵循的步骤类似于@Pila

            1. 从 intellij 关闭项目
            2. 删除.idea, log, out文件夹
            3. 转到 intellij 仪表板
            4. 从现有资源导入项目
            5. 选择build.gradle文件这很重要
            6. 现在您应该看到所有任务都在后台构建,一旦构建完成,所有红线都消失了。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多