在 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
尝试手动导入 GroovyTestCase
或 FibonacciHeap
会导致同样的错误。当我让自动完成为我完成名称时,IntelliJ 不会添加任何导入语句,就像通常使用 Java 代码一样。
我做错了什么?
您必须先配置 Groovy SDK。看截图
官方文档中更详细的描述:Configuring Global, Project and Module SDKs
这对我有用:
- 打开 Gradle window(在我的情况下在右侧)
- 点击刷新按钮
- 完成
我在 IntelliJ 中创建测试 classes 时遇到了类似的问题,并且在 com.company 文件夹(我有 class 文件夹之外创建新目录时解决了这个问题我想测试)。
- 为测试创建一个新目录 classes 在与您的 src 文件夹相同的级别
- 右键单击您的新测试目录,然后 "Mark directory as" --> "Test Resources Root"
- 现在创建一个测试 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
相似
- 从 intellij 关闭项目
- 删除
.idea, log, out
个文件夹
- 转到 intellij 仪表板
- 从现有资源导入项目
- select
build.gradle
文件 <-- 这很重要
- 现在您应该看到所有任务都在后台构建,构建完成后所有红线都消失了。
我需要为一些 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
尝试手动导入 GroovyTestCase
或 FibonacciHeap
会导致同样的错误。当我让自动完成为我完成名称时,IntelliJ 不会添加任何导入语句,就像通常使用 Java 代码一样。
我做错了什么?
您必须先配置 Groovy SDK。看截图
官方文档中更详细的描述:Configuring Global, Project and Module SDKs
这对我有用:
- 打开 Gradle window(在我的情况下在右侧)
- 点击刷新按钮
- 完成
我在 IntelliJ 中创建测试 classes 时遇到了类似的问题,并且在 com.company 文件夹(我有 class 文件夹之外创建新目录时解决了这个问题我想测试)。
- 为测试创建一个新目录 classes 在与您的 src 文件夹相同的级别
- 右键单击您的新测试目录,然后 "Mark directory as" --> "Test Resources Root"
- 现在创建一个测试 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
相似- 从 intellij 关闭项目
- 删除
.idea, log, out
个文件夹 - 转到 intellij 仪表板
- 从现有资源导入项目
- select
build.gradle
文件 <-- 这很重要 - 现在您应该看到所有任务都在后台构建,构建完成后所有红线都消失了。