在 Intellij 下使用 Groovy 测试 Java 代码:无法解析 class GroovyTestCase

Testing Java code with Groovy under Intellij: unable to resolve class GroovyTestCase

我需要为一些 Java 代码编写一个简短的测试。我用IntelliJ用CTRL+SHIFT+T生成了一个,选择"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}
    }
}

但是,当我右键单击项目 window 中的测试用例时,我没有获得通常对 JUnit 测试执行的 "Run All Tests" 选项,并且编译器抛出以下内容错误:

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 SDK。看截图

官方文档中更详细的描述:Configuring Global, Project and Module SDKs

这对我有用:

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

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

  1. 为测试创建一个新目录 classes 在与您的 src 文件夹相同的级别
  2. 右键单击您的新测试目录,然后 "Mark directory as" --> "Test Resources Root"
  3. 现在创建一个测试 class,它应该会自动添加到您的测试目录中。

就我而言,我为解决问题所做的工作相当简单。

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

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

在 IDE 本身中构建 -> 重建项目(相对于 maven,在我的例子中)为我做了。

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

groovyc: unable to resolve class groovy.util.GroovyTestCase

并且您已经将 groovy 作为依赖项,那么您可能只是缺少 junit 依赖项。

在 IntelliJ IDEA 中我重新导入了项目。那时它起作用了。 我关闭了想法。我删除了项目中的 .idea 文件夹。我导入了项目。

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

我正在 select 访问其中包含 build.gradle 文件的根文件夹,但没有成功。

遵循的步骤与@Pila

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